[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cfe-commits
Subject:    [clang] LLVM ABI Annotations (PR #67502)
From:       Tom Stellard via cfe-commits <cfe-commits () lists ! llvm ! org>
Date:       2023-09-30 21:12:53
Message-ID: 65188f55.170a0220.13437.8bc4 () mx ! google ! com
[Download RAW message or body]


https://github.com/tstellar updated https://github.com/llvm/llvm-project/pull/67502

> From 825afc151053eccf533454fe271406d99a9392ff Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
Date: Fri, 7 Jul 2023 01:58:17 +0000
Subject: [PATCH 01/40] APFloat: Add some missing function declarations

Theses functions were added in fd1e5aa8dffa8b26e59fb340668b264b9ac80382
without a declaration.

Differential Revision: https://reviews.llvm.org/D154765
---
 llvm/include/llvm/ADT/APFloat.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/llvm/include/llvm/ADT/APFloat.h b/llvm/include/llvm/ADT/APFloat.h
index 64caa5a76545673..3961a001b8810ca 100644
--- a/llvm/include/llvm/ADT/APFloat.h
+++ b/llvm/include/llvm/ADT/APFloat.h
@@ -753,6 +753,8 @@ class DoubleAPFloat final : public APFloatBase {
 };
 
 hash_code hash_value(const DoubleAPFloat &Arg);
+DoubleAPFloat scalbn(const DoubleAPFloat &Arg, int Exp, IEEEFloat::roundingMode RM);
+DoubleAPFloat frexp(const DoubleAPFloat &X, int &Exp, IEEEFloat::roundingMode);
 
 } // End detail namespace
 

> From c691dd6a2a4b2096e453343888ecb5b69d985255 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
Date: Thu, 13 Jul 2023 16:45:56 +0000
Subject: [PATCH 02/40] [profiling] Move option declarations into headers

This will make it possible to add visibility attributes to these
variables.  This also fixes some type mismatches between the
declaration and the definition.

Differential Revision: https://reviews.llvm.org/D156599
---
 clang/lib/CodeGen/BackendUtil.cpp                      |  3 +--
 llvm/include/llvm/ProfileData/ProfileCommon.h          |  8 ++++++++
 llvm/include/llvm/Transforms/IPO/SampleProfile.h       |  8 ++++++++
 .../Transforms/Instrumentation/PGOInstrumentation.h    |  3 +++
 llvm/lib/Analysis/ProfileSummaryInfo.cpp               | 10 ----------
 llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp |  1 +
 .../Transforms/Instrumentation/PGOInstrumentation.cpp  |  1 -
 llvm/tools/llvm-profgen/CSPreInliner.cpp               |  8 +-------
 8 files changed, 22 insertions(+), 20 deletions(-)

diff --git a/clang/lib/CodeGen/BackendUtil.cpp b/clang/lib/CodeGen/BackendUtil.cpp
index 1b0c249f4408999..72223803d59e314 100644
--- a/clang/lib/CodeGen/BackendUtil.cpp
+++ b/clang/lib/CodeGen/BackendUtil.cpp
@@ -69,6 +69,7 @@
 #include "llvm/Transforms/Instrumentation/KCFI.h"
 #include "llvm/Transforms/Instrumentation/MemProfiler.h"
 #include "llvm/Transforms/Instrumentation/MemorySanitizer.h"
+#include "llvm/Transforms/Instrumentation/PGOInstrumentation.h"
 #include "llvm/Transforms/Instrumentation/SanitizerBinaryMetadata.h"
 #include "llvm/Transforms/Instrumentation/SanitizerCoverage.h"
 #include "llvm/Transforms/Instrumentation/ThreadSanitizer.h"
@@ -89,8 +90,6 @@ using namespace llvm;
 #include "llvm/Support/Extension.def"
 
 namespace llvm {
-extern cl::opt<bool> DebugInfoCorrelate;
-
 // Experiment to move sanitizers earlier.
 static cl::opt<bool> ClSanitizeOnOptimizerEarlyEP(
     "sanitizer-early-opt-ep", cl::Optional,
diff --git a/llvm/include/llvm/ProfileData/ProfileCommon.h \
b/llvm/include/llvm/ProfileData/ProfileCommon.h index \
                4fe92cef4d72605..eaab59484c947a7 100644
--- a/llvm/include/llvm/ProfileData/ProfileCommon.h
+++ b/llvm/include/llvm/ProfileData/ProfileCommon.h
@@ -28,6 +28,14 @@
 
 namespace llvm {
 
+extern cl::opt<bool> UseContextLessSummary;
+extern cl::opt<int> ProfileSummaryCutoffHot;
+extern cl::opt<int> ProfileSummaryCutoffCold;
+extern cl::opt<unsigned> ProfileSummaryHugeWorkingSetSizeThreshold;
+extern cl::opt<unsigned> ProfileSummaryLargeWorkingSetSizeThreshold;
+extern cl::opt<uint64_t> ProfileSummaryHotCount;
+extern cl::opt<uint64_t> ProfileSummaryColdCount;
+
 namespace sampleprof {
 
 class FunctionSamples;
diff --git a/llvm/include/llvm/Transforms/IPO/SampleProfile.h \
b/llvm/include/llvm/Transforms/IPO/SampleProfile.h index \
                2ef55949e236556..e94f6ba55cd0dd4 100644
--- a/llvm/include/llvm/Transforms/IPO/SampleProfile.h
+++ b/llvm/include/llvm/Transforms/IPO/SampleProfile.h
@@ -17,12 +17,20 @@
 #include "llvm/ADT/IntrusiveRefCntPtr.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/CommandLine.h"
 #include <string>
 
 namespace llvm {
 
 class Module;
 
+extern cl::opt<int> SampleHotCallSiteThreshold;
+extern cl::opt<int> SampleColdCallSiteThreshold;
+extern cl::opt<int> ProfileInlineGrowthLimit;
+extern cl::opt<int> ProfileInlineLimitMin;
+extern cl::opt<int> ProfileInlineLimitMax;
+extern cl::opt<bool> SortProfiledSCC;
+
 namespace vfs {
 class FileSystem;
 } // namespace vfs
diff --git a/llvm/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h \
b/llvm/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h index \
                952bc2f8edbe347..b497c0cc53afb26 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h
@@ -18,11 +18,14 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/IntrusiveRefCntPtr.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/CommandLine.h"
 #include <cstdint>
 #include <string>
 
 namespace llvm {
 
+extern cl::opt<bool> DebugInfoCorrelate;
+
 class Function;
 class Instruction;
 class Module;
diff --git a/llvm/lib/Analysis/ProfileSummaryInfo.cpp \
b/llvm/lib/Analysis/ProfileSummaryInfo.cpp index 203f1e42733f3dc..fdad14571dfe4f4 \
                100644
--- a/llvm/lib/Analysis/ProfileSummaryInfo.cpp
+++ b/llvm/lib/Analysis/ProfileSummaryInfo.cpp
@@ -23,16 +23,6 @@
 #include <optional>
 using namespace llvm;
 
-// Knobs for profile summary based thresholds.
-namespace llvm {
-extern cl::opt<int> ProfileSummaryCutoffHot;
-extern cl::opt<int> ProfileSummaryCutoffCold;
-extern cl::opt<unsigned> ProfileSummaryHugeWorkingSetSizeThreshold;
-extern cl::opt<unsigned> ProfileSummaryLargeWorkingSetSizeThreshold;
-extern cl::opt<int> ProfileSummaryHotCount;
-extern cl::opt<int> ProfileSummaryColdCount;
-} // namespace llvm
-
 static cl::opt<bool> PartialProfile(
     "partial-profile", cl::Hidden, cl::init(false),
     cl::desc("Specify the current profile is used as a partial profile."));
diff --git a/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp \
b/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp index \
                a7b1953ce81c1eb..f78bd73aa642812 100644
--- a/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
+++ b/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
@@ -47,6 +47,7 @@
 #include "llvm/Support/Error.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/TargetParser/Triple.h"
+#include "llvm/Transforms/Instrumentation/PGOInstrumentation.h"
 #include "llvm/Transforms/Utils/ModuleUtils.h"
 #include "llvm/Transforms/Utils/SSAUpdater.h"
 #include <algorithm>
diff --git a/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp \
b/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp index \
                82cabbd28a7aaa1..ba162839877897e 100644
--- a/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
+++ b/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
@@ -327,7 +327,6 @@ extern cl::opt<PGOViewCountsType> PGOViewCounts;
 // Defined in Analysis/BlockFrequencyInfo.cpp:  -view-bfi-func-name=
 extern cl::opt<std::string> ViewBlockFreqFuncName;
 
-extern cl::opt<bool> DebugInfoCorrelate;
 } // namespace llvm
 
 static cl::opt<bool>
diff --git a/llvm/tools/llvm-profgen/CSPreInliner.cpp \
b/llvm/tools/llvm-profgen/CSPreInliner.cpp index ae0fd6d0b069298..c0ea22ca4c773c2 \
                100644
--- a/llvm/tools/llvm-profgen/CSPreInliner.cpp
+++ b/llvm/tools/llvm-profgen/CSPreInliner.cpp
@@ -11,6 +11,7 @@
 #include "llvm/ADT/SCCIterator.h"
 #include "llvm/ADT/Statistic.h"
 #include "llvm/DebugInfo/Symbolize/SymbolizableModule.h"
+#include "llvm/Transforms/IPO/SampleProfile.h"
 #include <cstdint>
 #include <queue>
 
@@ -35,13 +36,6 @@ STATISTIC(
 // TODO: the actual threshold to be tuned here because the size here is based
 // on machine code not LLVM IR.
 namespace llvm {
-extern cl::opt<int> SampleHotCallSiteThreshold;
-extern cl::opt<int> SampleColdCallSiteThreshold;
-extern cl::opt<int> ProfileInlineGrowthLimit;
-extern cl::opt<int> ProfileInlineLimitMin;
-extern cl::opt<int> ProfileInlineLimitMax;
-extern cl::opt<bool> SortProfiledSCC;
-
 cl::opt<bool> EnableCSPreInliner(
     "csspgo-preinliner", cl::Hidden, cl::init(true),
     cl::desc("Run a global pre-inliner to merge context profile based on "

> From 0224e43b58f1ecbadf1d9764fe63e2e8ec6ac3eb Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
Date: Fri, 21 Jul 2023 21:16:10 +0000
Subject: [PATCH 03/40] PassBuilder: Move PrintPiplinePasses declaration to
 header

This will make it possible to add visibility attributes to this
variable.
---
 llvm/include/llvm/Passes/PassBuilder.h | 3 +++
 llvm/tools/opt/NewPMDriver.cpp         | 4 ----
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/llvm/include/llvm/Passes/PassBuilder.h \
b/llvm/include/llvm/Passes/PassBuilder.h index fdb407263787f69..b95fd41554bf283 \
                100644
--- a/llvm/include/llvm/Passes/PassBuilder.h
+++ b/llvm/include/llvm/Passes/PassBuilder.h
@@ -28,6 +28,9 @@
 #include <vector>
 
 namespace llvm {
+
+extern cl::opt<bool> PrintPipelinePasses;
+
 class StringRef;
 class AAManager;
 class TargetMachine;
diff --git a/llvm/tools/opt/NewPMDriver.cpp b/llvm/tools/opt/NewPMDriver.cpp
index 6ae3f87099afd64..5ceea38c933eca3 100644
--- a/llvm/tools/opt/NewPMDriver.cpp
+++ b/llvm/tools/opt/NewPMDriver.cpp
@@ -214,10 +214,6 @@ static cl::opt<bool> DisableLoopUnrolling(
     "disable-loop-unrolling",
     cl::desc("Disable loop unrolling in all relevant passes"), cl::init(false));
 
-namespace llvm {
-extern cl::opt<bool> PrintPipelinePasses;
-} // namespace llvm
-
 template <typename PassManagerT>
 bool tryParsePipelineText(PassBuilder &PB,
                           const cl::opt<std::string> &PipelineOpt) {

> From f2fa98e68c7fc6fa712d16f78eab512328078994 Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
Date: Fri, 21 Jul 2023 21:42:33 +0000
Subject: [PATCH 04/40] XXX: CMake changes

---
 llvm/cmake/modules/AddLLVM.cmake | 17 ++++++++++++++++-
 llvm/lib/Target/CMakeLists.txt   | 11 -----------
 2 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
index 230620c37027a1e..49850e8bdde43a0 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -591,7 +591,22 @@ function(llvm_add_library name)
   endif()
 
   if(ARG_COMPONENT_LIB)
-    set_target_properties(${name} PROPERTIES LLVM_COMPONENT TRUE)
+    set_target_properties(${name} PROPERTIES
+	                  LLVM_COMPONENT TRUE
+			  DEFINE_SYMBOL "LLVM_ABI_EXPORTS")
+
+    # When building shared objects for each target there are some internal APIs
+    # that are used across shared objects which we can't hide.
+    if (NOT BUILD_SHARED_LIBS AND NOT APPLE AND
+        (NOT (WIN32 OR CYGWIN) OR (MINGW AND CMAKE_CXX_COMPILER_ID MATCHES "Clang")) \
AND +        NOT (${CMAKE_SYSTEM_NAME} MATCHES "AIX") AND
+        NOT DEFINED CMAKE_CXX_VISIBILITY_PRESET)
+
+      set_target_properties(${name} PROPERTIES
+                            C_VISIBILITY_PRESET hidden
+                            CXX_VISIBILITY_PRESET hidden
+                            VISIBILITY_INLINES_HIDDEN YES)
+    endif()
     set_property(GLOBAL APPEND PROPERTY LLVM_COMPONENT_LIBS ${name})
   endif()
 
diff --git a/llvm/lib/Target/CMakeLists.txt b/llvm/lib/Target/CMakeLists.txt
index 2739233f9ccb3d6..2a0edbe058984b7 100644
--- a/llvm/lib/Target/CMakeLists.txt
+++ b/llvm/lib/Target/CMakeLists.txt
@@ -20,17 +20,6 @@ add_llvm_component_library(LLVMTarget
   TargetParser
   )
 
-# When building shared objects for each target there are some internal APIs
-# that are used across shared objects which we can't hide.
-if (NOT BUILD_SHARED_LIBS AND NOT APPLE AND
-    (NOT (WIN32 OR CYGWIN) OR (MINGW AND CMAKE_CXX_COMPILER_ID MATCHES "Clang")) AND
-    NOT (${CMAKE_SYSTEM_NAME} MATCHES "AIX") AND
-    NOT DEFINED CMAKE_CXX_VISIBILITY_PRESET)
-  # Set default visibility to hidden, so we don't export all the Target classes
-  # in libLLVM.so.
-  set(CMAKE_CXX_VISIBILITY_PRESET hidden)
-endif()
-
 foreach(t ${LLVM_TARGETS_TO_BUILD})
   message(STATUS "Targeting ${t}")
   add_subdirectory(${t})

> From 5200de97f31326556d902fd4d425db856894237a Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
Date: Tue, 11 Jul 2023 13:32:19 +0000
Subject: [PATCH 05/40] Add headers

---
 llvm/include/llvm-c/Analysis.h                                 | 1 +
 llvm/include/llvm-c/BitReader.h                                | 1 +
 llvm/include/llvm-c/BitWriter.h                                | 1 +
 llvm/include/llvm-c/Comdat.h                                   | 1 +
 llvm/include/llvm-c/Core.h                                     | 1 +
 llvm/include/llvm-c/DebugInfo.h                                | 1 +
 llvm/include/llvm-c/Disassembler.h                             | 1 +
 llvm/include/llvm-c/DisassemblerTypes.h                        | 1 +
 llvm/include/llvm-c/ExecutionEngine.h                          | 1 +
 llvm/include/llvm-c/IRReader.h                                 | 1 +
 llvm/include/llvm-c/LLJIT.h                                    | 1 +
 llvm/include/llvm-c/Linker.h                                   | 1 +
 llvm/include/llvm-c/Object.h                                   | 1 +
 llvm/include/llvm-c/Orc.h                                      | 1 +
 llvm/include/llvm-c/OrcEE.h                                    | 1 +
 llvm/include/llvm-c/Remarks.h                                  | 1 +
 llvm/include/llvm-c/Support.h                                  | 1 +
 llvm/include/llvm-c/Target.h                                   | 1 +
 llvm/include/llvm-c/TargetMachine.h                            | 1 +
 llvm/include/llvm-c/Transforms/PassBuilder.h                   | 1 +
 llvm/include/llvm-c/blake3.h                                   | 1 +
 llvm/include/llvm-c/lto.h                                      | 1 +
 llvm/include/llvm/ADT/APFixedPoint.h                           | 1 +
 llvm/include/llvm/ADT/APFloat.h                                | 1 +
 llvm/include/llvm/ADT/APSInt.h                                 | 1 +
 llvm/include/llvm/ADT/AddressRanges.h                          | 1 +
 llvm/include/llvm/ADT/AllocatorList.h                          | 1 +
 llvm/include/llvm/ADT/BitVector.h                              | 1 +
 llvm/include/llvm/ADT/Bitfields.h                              | 1 +
 llvm/include/llvm/ADT/BitmaskEnum.h                            | 1 +
 llvm/include/llvm/ADT/BreadthFirstIterator.h                   | 1 +
 llvm/include/llvm/ADT/CachedHashString.h                       | 1 +
 llvm/include/llvm/ADT/CoalescingBitVector.h                    | 1 +
 llvm/include/llvm/ADT/ConcurrentHashtable.h                    | 1 +
 llvm/include/llvm/ADT/DenseSet.h                               | 1 +
 llvm/include/llvm/ADT/DepthFirstIterator.h                     | 1 +
 llvm/include/llvm/ADT/DirectedGraph.h                          | 1 +
 llvm/include/llvm/ADT/EnumeratedArray.h                        | 1 +
 llvm/include/llvm/ADT/EpochTracker.h                           | 1 +
 llvm/include/llvm/ADT/EquivalenceClasses.h                     | 1 +
 llvm/include/llvm/ADT/FloatingPointMode.h                      | 1 +
 llvm/include/llvm/ADT/FoldingSet.h                             | 1 +
 llvm/include/llvm/ADT/FunctionExtras.h                         | 1 +
 llvm/include/llvm/ADT/GenericCycleImpl.h                       | 1 +
 llvm/include/llvm/ADT/GenericCycleInfo.h                       | 1 +
 llvm/include/llvm/ADT/GenericSSAContext.h                      | 1 +
 llvm/include/llvm/ADT/GenericUniformityImpl.h                  | 1 +
 llvm/include/llvm/ADT/GenericUniformityInfo.h                  | 1 +
 llvm/include/llvm/ADT/GraphTraits.h                            | 1 +
 llvm/include/llvm/ADT/Hashing.h                                | 1 +
 llvm/include/llvm/ADT/IndexedMap.h                             | 1 +
 llvm/include/llvm/ADT/IntEqClasses.h                           | 1 +
 llvm/include/llvm/ADT/IntervalMap.h                            | 1 +
 llvm/include/llvm/ADT/IntervalTree.h                           | 1 +
 llvm/include/llvm/ADT/MapVector.h                              | 1 +
 llvm/include/llvm/ADT/PointerEmbeddedInt.h                     | 1 +
 llvm/include/llvm/ADT/PointerSumType.h                         | 1 +
 llvm/include/llvm/ADT/PointerUnion.h                           | 1 +
 llvm/include/llvm/ADT/PostOrderIterator.h                      | 1 +
 llvm/include/llvm/ADT/PriorityQueue.h                          | 1 +
 llvm/include/llvm/ADT/SCCIterator.h                            | 1 +
 llvm/include/llvm/ADT/STLExtras.h                              | 1 +
 llvm/include/llvm/ADT/ScopedHashTable.h                        | 1 +
 llvm/include/llvm/ADT/Sequence.h                               | 1 +
 llvm/include/llvm/ADT/SmallBitVector.h                         | 1 +
 llvm/include/llvm/ADT/SmallString.h                            | 1 +
 llvm/include/llvm/ADT/SparseBitVector.h                        | 1 +
 llvm/include/llvm/ADT/SparseMultiSet.h                         | 1 +
 llvm/include/llvm/ADT/SparseSet.h                              | 1 +
 llvm/include/llvm/ADT/StringExtras.h                           | 1 +
 llvm/include/llvm/ADT/StringMap.h                              | 1 +
 llvm/include/llvm/ADT/StringMapEntry.h                         | 1 +
 llvm/include/llvm/ADT/StringSet.h                              | 1 +
 llvm/include/llvm/ADT/TinyPtrVector.h                          | 1 +
 llvm/include/llvm/ADT/Twine.h                                  | 1 +
 llvm/include/llvm/ADT/UniqueVector.h                           | 1 +
 llvm/include/llvm/ADT/fallible_iterator.h                      | 1 +
 llvm/include/llvm/ADT/ilist.h                                  | 1 +
 llvm/include/llvm/ADT/ilist_base.h                             | 1 +
 llvm/include/llvm/ADT/ilist_iterator.h                         | 1 +
 llvm/include/llvm/ADT/ilist_node.h                             | 1 +
 llvm/include/llvm/ADT/ilist_node_base.h                        | 1 +
 llvm/include/llvm/ADT/ilist_node_options.h                     | 1 +
 llvm/include/llvm/ADT/iterator.h                               | 1 +
 llvm/include/llvm/Analysis/AliasAnalysis.h                     | 1 +
 llvm/include/llvm/Analysis/AliasAnalysisEvaluator.h            | 1 +
 llvm/include/llvm/Analysis/AliasSetTracker.h                   | 1 +
 llvm/include/llvm/Analysis/AssumeBundleQueries.h               | 1 +
 llvm/include/llvm/Analysis/AssumptionCache.h                   | 1 +
 llvm/include/llvm/Analysis/BasicAliasAnalysis.h                | 1 +
 llvm/include/llvm/Analysis/BlockFrequencyInfo.h                | 1 +
 llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h            | 1 +
 llvm/include/llvm/Analysis/BranchProbabilityInfo.h             | 1 +
 llvm/include/llvm/Analysis/CFG.h                               | 1 +
 llvm/include/llvm/Analysis/CFGPrinter.h                        | 1 +
 llvm/include/llvm/Analysis/CFGSCCPrinter.h                     | 1 +
 llvm/include/llvm/Analysis/CGSCCPassManager.h                  | 1 +
 llvm/include/llvm/Analysis/CallGraph.h                         | 1 +
 llvm/include/llvm/Analysis/CallGraphSCCPass.h                  | 1 +
 llvm/include/llvm/Analysis/CallPrinter.h                       | 1 +
 llvm/include/llvm/Analysis/CaptureTracking.h                   | 1 +
 llvm/include/llvm/Analysis/CmpInstAnalysis.h                   | 1 +
 llvm/include/llvm/Analysis/CodeMetrics.h                       | 1 +
 llvm/include/llvm/Analysis/ConstantFolding.h                   | 1 +
 llvm/include/llvm/Analysis/ConstraintSystem.h                  | 1 +
 llvm/include/llvm/Analysis/CostModel.h                         | 1 +
 llvm/include/llvm/Analysis/CycleAnalysis.h                     | 1 +
 llvm/include/llvm/Analysis/DDG.h                               | 1 +
 llvm/include/llvm/Analysis/DDGPrinter.h                        | 1 +
 llvm/include/llvm/Analysis/DOTGraphTraitsPass.h                | 1 +
 llvm/include/llvm/Analysis/Delinearization.h                   | 1 +
 llvm/include/llvm/Analysis/DemandedBits.h                      | 1 +
 llvm/include/llvm/Analysis/DependenceAnalysis.h                | 1 +
 llvm/include/llvm/Analysis/DependenceGraphBuilder.h            | 1 +
 llvm/include/llvm/Analysis/DomPrinter.h                        | 1 +
 llvm/include/llvm/Analysis/DominanceFrontier.h                 | 1 +
 llvm/include/llvm/Analysis/DominanceFrontierImpl.h             | 1 +
 llvm/include/llvm/Analysis/FunctionPropertiesAnalysis.h        | 1 +
 llvm/include/llvm/Analysis/GlobalsModRef.h                     | 1 +
 llvm/include/llvm/Analysis/GuardUtils.h                        | 2 ++
 llvm/include/llvm/Analysis/HeatUtils.h                         | 1 +
 llvm/include/llvm/Analysis/IRSimilarityIdentifier.h            | 1 +
 llvm/include/llvm/Analysis/IVDescriptors.h                     | 1 +
 llvm/include/llvm/Analysis/IVUsers.h                           | 1 +
 llvm/include/llvm/Analysis/IndirectCallPromotionAnalysis.h     | 1 +
 llvm/include/llvm/Analysis/IndirectCallVisitor.h               | 1 +
 llvm/include/llvm/Analysis/InlineAdvisor.h                     | 1 +
 llvm/include/llvm/Analysis/InlineCost.h                        | 1 +
 llvm/include/llvm/Analysis/InlineOrder.h                       | 1 +
 llvm/include/llvm/Analysis/InlineSizeEstimatorAnalysis.h       | 1 +
 llvm/include/llvm/Analysis/InstCount.h                         | 1 +
 llvm/include/llvm/Analysis/InstSimplifyFolder.h                | 1 +
 llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h     | 1 +
 llvm/include/llvm/Analysis/InstructionSimplify.h               | 1 +
 llvm/include/llvm/Analysis/InteractiveModelRunner.h            | 1 +
 llvm/include/llvm/Analysis/Interval.h                          | 1 +
 llvm/include/llvm/Analysis/IntervalIterator.h                  | 1 +
 llvm/include/llvm/Analysis/IntervalPartition.h                 | 1 +
 llvm/include/llvm/Analysis/IteratedDominanceFrontier.h         | 1 +
 llvm/include/llvm/Analysis/LazyBlockFrequencyInfo.h            | 1 +
 llvm/include/llvm/Analysis/LazyBranchProbabilityInfo.h         | 1 +
 llvm/include/llvm/Analysis/LazyCallGraph.h                     | 1 +
 llvm/include/llvm/Analysis/LazyValueInfo.h                     | 1 +
 llvm/include/llvm/Analysis/Lint.h                              | 1 +
 llvm/include/llvm/Analysis/Loads.h                             | 1 +
 llvm/include/llvm/Analysis/LoopAccessAnalysis.h                | 1 +
 llvm/include/llvm/Analysis/LoopAnalysisManager.h               | 1 +
 llvm/include/llvm/Analysis/LoopCacheAnalysis.h                 | 1 +
 llvm/include/llvm/Analysis/LoopInfo.h                          | 1 +
 llvm/include/llvm/Analysis/LoopIterator.h                      | 1 +
 llvm/include/llvm/Analysis/LoopNestAnalysis.h                  | 1 +
 llvm/include/llvm/Analysis/LoopPass.h                          | 1 +
 llvm/include/llvm/Analysis/LoopUnrollAnalyzer.h                | 1 +
 llvm/include/llvm/Analysis/MLInlineAdvisor.h                   | 1 +
 llvm/include/llvm/Analysis/MLModelRunner.h                     | 1 +
 llvm/include/llvm/Analysis/MemDerefPrinter.h                   | 1 +
 llvm/include/llvm/Analysis/MemoryBuiltins.h                    | 1 +
 llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h          | 1 +
 llvm/include/llvm/Analysis/MemoryLocation.h                    | 1 +
 llvm/include/llvm/Analysis/MemoryProfileInfo.h                 | 1 +
 llvm/include/llvm/Analysis/MemorySSA.h                         | 1 +
 llvm/include/llvm/Analysis/MemorySSAUpdater.h                  | 1 +
 llvm/include/llvm/Analysis/ModuleDebugInfoPrinter.h            | 1 +
 llvm/include/llvm/Analysis/ModuleSummaryAnalysis.h             | 1 +
 llvm/include/llvm/Analysis/MustExecute.h                       | 1 +
 llvm/include/llvm/Analysis/NoInferenceModelRunner.h            | 1 +
 llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h              | 1 +
 llvm/include/llvm/Analysis/ObjCARCAnalysisUtils.h              | 1 +
 llvm/include/llvm/Analysis/ObjCARCInstKind.h                   | 1 +
 llvm/include/llvm/Analysis/OptimizationRemarkEmitter.h         | 1 +
 llvm/include/llvm/Analysis/OverflowInstAnalysis.h              | 2 ++
 llvm/include/llvm/Analysis/PHITransAddr.h                      | 1 +
 llvm/include/llvm/Analysis/Passes.h                            | 2 ++
 llvm/include/llvm/Analysis/PhiValues.h                         | 1 +
 llvm/include/llvm/Analysis/PostDominators.h                    | 1 +
 llvm/include/llvm/Analysis/ProfileSummaryInfo.h                | 1 +
 llvm/include/llvm/Analysis/PtrUseVisitor.h                     | 1 +
 llvm/include/llvm/Analysis/RegionInfo.h                        | 1 +
 llvm/include/llvm/Analysis/RegionIterator.h                    | 1 +
 llvm/include/llvm/Analysis/RegionPass.h                        | 1 +
 llvm/include/llvm/Analysis/RegionPrinter.h                     | 1 +
 llvm/include/llvm/Analysis/ReleaseModeModelRunner.h            | 1 +
 llvm/include/llvm/Analysis/ReplayInlineAdvisor.h               | 1 +
 llvm/include/llvm/Analysis/ScalarEvolution.h                   | 1 +
 llvm/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h      | 1 +
 llvm/include/llvm/Analysis/ScalarEvolutionDivision.h           | 1 +
 llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h        | 1 +
 llvm/include/llvm/Analysis/ScalarEvolutionNormalization.h      | 1 +
 llvm/include/llvm/Analysis/ScopedNoAliasAA.h                   | 1 +
 llvm/include/llvm/Analysis/SparsePropagation.h                 | 1 +
 llvm/include/llvm/Analysis/StackLifetime.h                     | 1 +
 llvm/include/llvm/Analysis/StackSafetyAnalysis.h               | 1 +
 llvm/include/llvm/Analysis/SyntheticCountsUtils.h              | 1 +
 llvm/include/llvm/Analysis/TargetFolder.h                      | 1 +
 llvm/include/llvm/Analysis/TargetLibraryInfo.h                 | 1 +
 llvm/include/llvm/Analysis/TargetTransformInfo.h               | 1 +
 llvm/include/llvm/Analysis/TargetTransformInfoImpl.h           | 1 +
 llvm/include/llvm/Analysis/TensorSpec.h                        | 1 +
 llvm/include/llvm/Analysis/Trace.h                             | 1 +
 llvm/include/llvm/Analysis/TypeBasedAliasAnalysis.h            | 1 +
 llvm/include/llvm/Analysis/TypeMetadataUtils.h                 | 1 +
 llvm/include/llvm/Analysis/UniformityAnalysis.h                | 1 +
 .../llvm/Analysis/Utils/ImportedFunctionsInliningStatistics.h  | 1 +
 llvm/include/llvm/Analysis/Utils/Local.h                       | 2 ++
 llvm/include/llvm/Analysis/Utils/TrainingLogger.h              | 1 +
 llvm/include/llvm/Analysis/ValueLattice.h                      | 1 +
 llvm/include/llvm/Analysis/ValueLatticeUtils.h                 | 2 ++
 llvm/include/llvm/Analysis/ValueTracking.h                     | 1 +
 llvm/include/llvm/Analysis/VectorUtils.h                       | 1 +
 llvm/include/llvm/AsmParser/LLLexer.h                          | 1 +
 llvm/include/llvm/AsmParser/LLParser.h                         | 1 +
 llvm/include/llvm/AsmParser/Parser.h                           | 1 +
 llvm/include/llvm/AsmParser/SlotMapping.h                      | 1 +
 llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h        | 1 +
 llvm/include/llvm/BinaryFormat/COFF.h                          | 1 +
 llvm/include/llvm/BinaryFormat/DXContainer.h                   | 1 +
 llvm/include/llvm/BinaryFormat/ELF.h                           | 1 +
 llvm/include/llvm/BinaryFormat/Magic.h                         | 1 +
 llvm/include/llvm/BinaryFormat/Minidump.h                      | 1 +
 llvm/include/llvm/BinaryFormat/MsgPackDocument.h               | 1 +
 llvm/include/llvm/BinaryFormat/MsgPackReader.h                 | 1 +
 llvm/include/llvm/BinaryFormat/MsgPackWriter.h                 | 1 +
 llvm/include/llvm/BinaryFormat/Wasm.h                          | 1 +
 llvm/include/llvm/BinaryFormat/WasmTraits.h                    | 1 +
 llvm/include/llvm/BinaryFormat/XCOFF.h                         | 1 +
 llvm/include/llvm/Bitcode/BitcodeAnalyzer.h                    | 1 +
 llvm/include/llvm/Bitcode/BitcodeCommon.h                      | 1 +
 llvm/include/llvm/Bitcode/BitcodeReader.h                      | 1 +
 llvm/include/llvm/Bitcode/BitcodeWriter.h                      | 1 +
 llvm/include/llvm/Bitcode/BitcodeWriterPass.h                  | 1 +
 llvm/include/llvm/Bitstream/BitCodes.h                         | 1 +
 llvm/include/llvm/Bitstream/BitstreamReader.h                  | 1 +
 llvm/include/llvm/Bitstream/BitstreamWriter.h                  | 1 +
 llvm/include/llvm/CodeGen/AccelTable.h                         | 1 +
 llvm/include/llvm/CodeGen/Analysis.h                           | 1 +
 llvm/include/llvm/CodeGen/AsmPrinter.h                         | 1 +
 llvm/include/llvm/CodeGen/AsmPrinterHandler.h                  | 1 +
 llvm/include/llvm/CodeGen/AssignmentTrackingAnalysis.h         | 1 +
 llvm/include/llvm/CodeGen/AtomicExpandUtils.h                  | 1 +
 llvm/include/llvm/CodeGen/BasicBlockSectionUtils.h             | 1 +
 llvm/include/llvm/CodeGen/BasicBlockSectionsProfileReader.h    | 1 +
 llvm/include/llvm/CodeGen/BasicTTIImpl.h                       | 1 +
 llvm/include/llvm/CodeGen/ByteProvider.h                       | 1 +
 llvm/include/llvm/CodeGen/CFIFixup.h                           | 1 +
 llvm/include/llvm/CodeGen/CSEConfigBase.h                      | 2 ++
 llvm/include/llvm/CodeGen/CalcSpillWeights.h                   | 1 +
 llvm/include/llvm/CodeGen/CallingConvLower.h                   | 1 +
 llvm/include/llvm/CodeGen/CodeGenCommonISel.h                  | 1 +
 llvm/include/llvm/CodeGen/CodeGenPassBuilder.h                 | 1 +
 llvm/include/llvm/CodeGen/CommandFlags.h                       | 1 +
 llvm/include/llvm/CodeGen/ComplexDeinterleavingPass.h          | 1 +
 llvm/include/llvm/CodeGen/CostTable.h                          | 1 +
 llvm/include/llvm/CodeGen/DFAPacketizer.h                      | 1 +
 llvm/include/llvm/CodeGen/DIE.h                                | 1 +
 llvm/include/llvm/CodeGen/DbgEntityHistoryCalculator.h         | 1 +
 llvm/include/llvm/CodeGen/DebugHandlerBase.h                   | 1 +
 llvm/include/llvm/CodeGen/DetectDeadLanes.h                    | 1 +
 llvm/include/llvm/CodeGen/DwarfStringPoolEntry.h               | 1 +
 llvm/include/llvm/CodeGen/EdgeBundles.h                        | 1 +
 llvm/include/llvm/CodeGen/ExecutionDomainFix.h                 | 1 +
 llvm/include/llvm/CodeGen/ExpandReductions.h                   | 1 +
 llvm/include/llvm/CodeGen/ExpandVectorPredication.h            | 1 +
 llvm/include/llvm/CodeGen/FastISel.h                           | 1 +
 llvm/include/llvm/CodeGen/FaultMaps.h                          | 1 +
 llvm/include/llvm/CodeGen/FunctionLoweringInfo.h               | 1 +
 llvm/include/llvm/CodeGen/GCMetadata.h                         | 1 +
 llvm/include/llvm/CodeGen/GCMetadataPrinter.h                  | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/CSEInfo.h                 | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/CSEMIRBuilder.h           | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h            | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/Combiner.h                | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h          | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h            | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h     | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/GISelKnownBits.h          | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h           | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/GenericMachineInstrs.h    | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h            | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/InlineAsmLowering.h       | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/InstructionSelect.h       | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h     | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/LegacyLegalizerInfo.h     | 1 +
 .../llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h     | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/Legalizer.h               | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h         | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h           | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/LoadStoreOpt.h            | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/Localizer.h               | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/LostDebugLocObserver.h    | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h          | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h        | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h           | 1 +
 llvm/include/llvm/CodeGen/GlobalISel/Utils.h                   | 1 +
 llvm/include/llvm/CodeGen/HardwareLoops.h                      | 1 +
 llvm/include/llvm/CodeGen/ISDOpcodes.h                         | 1 +
 llvm/include/llvm/CodeGen/IndirectThunks.h                     | 1 +
 llvm/include/llvm/CodeGen/IntrinsicLowering.h                  | 2 ++
 llvm/include/llvm/CodeGen/LatencyPriorityQueue.h               | 1 +
 llvm/include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h      | 1 +
 llvm/include/llvm/CodeGen/LexicalScopes.h                      | 1 +
 llvm/include/llvm/CodeGen/LiveInterval.h                       | 1 +
 llvm/include/llvm/CodeGen/LiveIntervalCalc.h                   | 1 +
 llvm/include/llvm/CodeGen/LiveIntervalUnion.h                  | 1 +
 llvm/include/llvm/CodeGen/LivePhysRegs.h                       | 1 +
 llvm/include/llvm/CodeGen/LiveRangeCalc.h                      | 1 +
 llvm/include/llvm/CodeGen/LiveRangeEdit.h                      | 1 +
 llvm/include/llvm/CodeGen/LiveRegMatrix.h                      | 1 +
 llvm/include/llvm/CodeGen/LiveRegUnits.h                       | 1 +
 llvm/include/llvm/CodeGen/LiveStacks.h                         | 1 +
 llvm/include/llvm/CodeGen/LiveVariables.h                      | 1 +
 llvm/include/llvm/CodeGen/LoopTraversal.h                      | 1 +
 llvm/include/llvm/CodeGen/LowLevelType.h                       | 1 +
 llvm/include/llvm/CodeGen/LowLevelTypeUtils.h                  | 1 +
 llvm/include/llvm/CodeGen/MBFIWrapper.h                        | 1 +
 llvm/include/llvm/CodeGen/MIRFSDiscriminator.h                 | 1 +
 llvm/include/llvm/CodeGen/MIRFormatter.h                       | 1 +
 llvm/include/llvm/CodeGen/MIRParser/MIParser.h                 | 1 +
 llvm/include/llvm/CodeGen/MIRParser/MIRParser.h                | 1 +
 llvm/include/llvm/CodeGen/MIRPrinter.h                         | 2 ++
 llvm/include/llvm/CodeGen/MIRSampleProfile.h                   | 1 +
 llvm/include/llvm/CodeGen/MIRYamlMapping.h                     | 1 +
 llvm/include/llvm/CodeGen/MachineBasicBlock.h                  | 1 +
 llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.h          | 1 +
 llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h       | 1 +
 llvm/include/llvm/CodeGen/MachineCFGPrinter.h                  | 1 +
 llvm/include/llvm/CodeGen/MachineConstantPool.h                | 1 +
 llvm/include/llvm/CodeGen/MachineCycleAnalysis.h               | 1 +
 llvm/include/llvm/CodeGen/MachineDominanceFrontier.h           | 1 +
 llvm/include/llvm/CodeGen/MachineDominators.h                  | 1 +
 llvm/include/llvm/CodeGen/MachineFrameInfo.h                   | 1 +
 llvm/include/llvm/CodeGen/MachineFunctionPass.h                | 1 +
 llvm/include/llvm/CodeGen/MachineInstr.h                       | 1 +
 llvm/include/llvm/CodeGen/MachineInstrBuilder.h                | 1 +
 llvm/include/llvm/CodeGen/MachineInstrBundle.h                 | 1 +
 llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h         | 1 +
 llvm/include/llvm/CodeGen/MachineJumpTableInfo.h               | 1 +
 llvm/include/llvm/CodeGen/MachineLoopInfo.h                    | 1 +
 llvm/include/llvm/CodeGen/MachineLoopUtils.h                   | 2 ++
 llvm/include/llvm/CodeGen/MachineMemOperand.h                  | 1 +
 llvm/include/llvm/CodeGen/MachineModuleInfo.h                  | 1 +
 llvm/include/llvm/CodeGen/MachineModuleInfoImpls.h             | 1 +
 llvm/include/llvm/CodeGen/MachineModuleSlotTracker.h           | 1 +
 llvm/include/llvm/CodeGen/MachineOperand.h                     | 1 +
 llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h   | 1 +
 llvm/include/llvm/CodeGen/MachineOutliner.h                    | 1 +
 llvm/include/llvm/CodeGen/MachinePassManager.h                 | 1 +
 llvm/include/llvm/CodeGen/MachinePassRegistry.h                | 1 +
 llvm/include/llvm/CodeGen/MachinePipeliner.h                   | 1 +
 llvm/include/llvm/CodeGen/MachinePostDominators.h              | 1 +
 llvm/include/llvm/CodeGen/MachineRegionInfo.h                  | 1 +
 llvm/include/llvm/CodeGen/MachineRegisterInfo.h                | 1 +
 llvm/include/llvm/CodeGen/MachineSSAContext.h                  | 1 +
 llvm/include/llvm/CodeGen/MachineSSAUpdater.h                  | 1 +
 llvm/include/llvm/CodeGen/MachineScheduler.h                   | 1 +
 llvm/include/llvm/CodeGen/MachineSizeOpts.h                    | 1 +
 llvm/include/llvm/CodeGen/MachineStableHash.h                  | 1 +
 llvm/include/llvm/CodeGen/MachineTraceMetrics.h                | 1 +
 llvm/include/llvm/CodeGen/MachineUniformityAnalysis.h          | 1 +
 llvm/include/llvm/CodeGen/MachineValueType.h                   | 1 +
 llvm/include/llvm/CodeGen/MacroFusion.h                        | 1 +
 llvm/include/llvm/CodeGen/ModuloSchedule.h                     | 1 +
 llvm/include/llvm/CodeGen/MultiHazardRecognizer.h              | 1 +
 llvm/include/llvm/CodeGen/NonRelocatableStringpool.h           | 1 +
 llvm/include/llvm/CodeGen/PBQP/CostAllocator.h                 | 1 +
 llvm/include/llvm/CodeGen/PBQP/Graph.h                         | 1 +
 llvm/include/llvm/CodeGen/PBQP/Math.h                          | 1 +
 llvm/include/llvm/CodeGen/PBQP/Solution.h                      | 1 +
 llvm/include/llvm/CodeGen/PBQPRAConstraint.h                   | 1 +
 llvm/include/llvm/CodeGen/ParallelCG.h                         | 1 +
 llvm/include/llvm/CodeGen/Passes.h                             | 1 +
 llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h           | 1 +
 llvm/include/llvm/CodeGen/PseudoSourceValue.h                  | 1 +
 llvm/include/llvm/CodeGen/RDFGraph.h                           | 1 +
 llvm/include/llvm/CodeGen/RDFLiveness.h                        | 1 +
 llvm/include/llvm/CodeGen/RDFRegisters.h                       | 1 +
 llvm/include/llvm/CodeGen/ReachingDefAnalysis.h                | 1 +
 llvm/include/llvm/CodeGen/RegAllocPBQP.h                       | 1 +
 llvm/include/llvm/CodeGen/RegAllocRegistry.h                   | 1 +
 llvm/include/llvm/CodeGen/Register.h                           | 1 +
 llvm/include/llvm/CodeGen/RegisterBank.h                       | 1 +
 llvm/include/llvm/CodeGen/RegisterBankInfo.h                   | 1 +
 llvm/include/llvm/CodeGen/RegisterClassInfo.h                  | 1 +
 llvm/include/llvm/CodeGen/RegisterPressure.h                   | 1 +
 llvm/include/llvm/CodeGen/RegisterScavenging.h                 | 1 +
 llvm/include/llvm/CodeGen/RegisterUsageInfo.h                  | 1 +
 llvm/include/llvm/CodeGen/ReplaceWithVeclib.h                  | 1 +
 llvm/include/llvm/CodeGen/ResourcePriorityQueue.h              | 1 +
 llvm/include/llvm/CodeGen/RuntimeLibcalls.h                    | 1 +
 llvm/include/llvm/CodeGen/ScheduleDAG.h                        | 1 +
 llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h                  | 1 +
 llvm/include/llvm/CodeGen/ScheduleDAGMutation.h                | 2 ++
 llvm/include/llvm/CodeGen/ScheduleDFS.h                        | 1 +
 llvm/include/llvm/CodeGen/ScheduleHazardRecognizer.h           | 2 ++
 llvm/include/llvm/CodeGen/SchedulerRegistry.h                  | 1 +
 llvm/include/llvm/CodeGen/ScoreboardHazardRecognizer.h         | 1 +
 llvm/include/llvm/CodeGen/SelectionDAG.h                       | 1 +
 llvm/include/llvm/CodeGen/SelectionDAGAddressAnalysis.h        | 1 +
 llvm/include/llvm/CodeGen/SelectionDAGISel.h                   | 1 +
 llvm/include/llvm/CodeGen/SelectionDAGNodes.h                  | 1 +
 llvm/include/llvm/CodeGen/SelectionDAGTargetInfo.h             | 1 +
 llvm/include/llvm/CodeGen/SlotIndexes.h                        | 1 +
 llvm/include/llvm/CodeGen/Spiller.h                            | 2 ++
 llvm/include/llvm/CodeGen/StackMaps.h                          | 1 +
 llvm/include/llvm/CodeGen/StackProtector.h                     | 1 +
 llvm/include/llvm/CodeGen/SwiftErrorValueTracking.h            | 1 +
 llvm/include/llvm/CodeGen/SwitchLoweringUtils.h                | 1 +
 llvm/include/llvm/CodeGen/TailDuplicator.h                     | 1 +
 llvm/include/llvm/CodeGen/TargetCallingConv.h                  | 1 +
 llvm/include/llvm/CodeGen/TargetFrameLowering.h                | 1 +
 llvm/include/llvm/CodeGen/TargetInstrInfo.h                    | 1 +
 llvm/include/llvm/CodeGen/TargetLowering.h                     | 1 +
 llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h       | 1 +
 llvm/include/llvm/CodeGen/TargetPassConfig.h                   | 1 +
 llvm/include/llvm/CodeGen/TargetRegisterInfo.h                 | 1 +
 llvm/include/llvm/CodeGen/TargetSchedule.h                     | 1 +
 llvm/include/llvm/CodeGen/TargetSubtargetInfo.h                | 1 +
 llvm/include/llvm/CodeGen/TileShapeInfo.h                      | 1 +
 llvm/include/llvm/CodeGen/TypePromotion.h                      | 1 +
 llvm/include/llvm/CodeGen/UnreachableBlockElim.h               | 1 +
 llvm/include/llvm/CodeGen/VLIWMachineScheduler.h               | 1 +
 llvm/include/llvm/CodeGen/VirtRegMap.h                         | 1 +
 llvm/include/llvm/CodeGen/WasmEHFuncInfo.h                     | 1 +
 llvm/include/llvm/CodeGen/WinEHFuncInfo.h                      | 1 +
 llvm/include/llvm/DWARFLinker/DWARFLinker.h                    | 1 +
 llvm/include/llvm/DWARFLinker/DWARFLinkerCompileUnit.h         | 1 +
 llvm/include/llvm/DWARFLinker/DWARFLinkerDeclContext.h         | 1 +
 llvm/include/llvm/DWARFLinker/DWARFStreamer.h                  | 1 +
 llvm/include/llvm/DWARFLinkerParallel/AddressesMap.h           | 1 +
 llvm/include/llvm/DWARFLinkerParallel/DWARFFile.h              | 1 +
 llvm/include/llvm/DWARFLinkerParallel/DWARFLinker.h            | 1 +
 llvm/include/llvm/DWARFLinkerParallel/StringPool.h             | 1 +
 llvm/include/llvm/DWARFLinkerParallel/StringTable.h            | 1 +
 llvm/include/llvm/DWP/DWP.h                                    | 1 +
 llvm/include/llvm/DWP/DWPError.h                               | 1 +
 llvm/include/llvm/DWP/DWPStringPool.h                          | 1 +
 .../llvm/DebugInfo/CodeView/AppendingTypeTableBuilder.h        | 1 +
 llvm/include/llvm/DebugInfo/CodeView/CVRecord.h                | 1 +
 llvm/include/llvm/DebugInfo/CodeView/CVSymbolVisitor.h         | 1 +
 llvm/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h           | 1 +
 llvm/include/llvm/DebugInfo/CodeView/CodeView.h                | 1 +
 llvm/include/llvm/DebugInfo/CodeView/CodeViewError.h           | 1 +
 llvm/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h        | 1 +
 .../llvm/DebugInfo/CodeView/ContinuationRecordBuilder.h        | 1 +
 .../include/llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h | 1 +
 llvm/include/llvm/DebugInfo/CodeView/DebugCrossExSubsection.h  | 1 +
 llvm/include/llvm/DebugInfo/CodeView/DebugCrossImpSubsection.h | 1 +
 .../include/llvm/DebugInfo/CodeView/DebugFrameDataSubsection.h | 1 +
 .../llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h      | 1 +
 llvm/include/llvm/DebugInfo/CodeView/DebugLinesSubsection.h    | 1 +
 .../llvm/DebugInfo/CodeView/DebugStringTableSubsection.h       | 1 +
 llvm/include/llvm/DebugInfo/CodeView/DebugSubsection.h         | 1 +
 llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionRecord.h   | 1 +
 llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h  | 1 +
 .../include/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h | 1 +
 llvm/include/llvm/DebugInfo/CodeView/DebugSymbolsSubsection.h  | 1 +
 llvm/include/llvm/DebugInfo/CodeView/DebugUnknownSubsection.h  | 1 +
 llvm/include/llvm/DebugInfo/CodeView/EnumTables.h              | 1 +
 llvm/include/llvm/DebugInfo/CodeView/Formatters.h              | 1 +
 llvm/include/llvm/DebugInfo/CodeView/GUID.h                    | 1 +
 llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h  | 1 +
 .../include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h | 1 +
 llvm/include/llvm/DebugInfo/CodeView/Line.h                    | 1 +
 llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h | 1 +
 llvm/include/llvm/DebugInfo/CodeView/RecordName.h              | 1 +
 llvm/include/llvm/DebugInfo/CodeView/RecordSerialization.h     | 1 +
 llvm/include/llvm/DebugInfo/CodeView/SimpleTypeSerializer.h    | 1 +
 llvm/include/llvm/DebugInfo/CodeView/StringsAndChecksums.h     | 1 +
 llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h      | 1 +
 llvm/include/llvm/DebugInfo/CodeView/SymbolDumpDelegate.h      | 1 +
 llvm/include/llvm/DebugInfo/CodeView/SymbolDumper.h            | 1 +
 llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h            | 1 +
 llvm/include/llvm/DebugInfo/CodeView/SymbolRecordHelpers.h     | 1 +
 llvm/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h     | 1 +
 llvm/include/llvm/DebugInfo/CodeView/SymbolSerializer.h        | 1 +
 .../llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h    | 1 +
 llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h  | 1 +
 llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorDelegate.h   | 1 +
 llvm/include/llvm/DebugInfo/CodeView/TypeCollection.h          | 1 +
 llvm/include/llvm/DebugInfo/CodeView/TypeDeserializer.h        | 1 +
 llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h         | 1 +
 llvm/include/llvm/DebugInfo/CodeView/TypeHashing.h             | 1 +
 llvm/include/llvm/DebugInfo/CodeView/TypeIndex.h               | 1 +
 llvm/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h      | 1 +
 llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h              | 1 +
 llvm/include/llvm/DebugInfo/CodeView/TypeRecordHelpers.h       | 1 +
 llvm/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h       | 1 +
 llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h        | 1 +
 llvm/include/llvm/DebugInfo/CodeView/TypeTableCollection.h     | 1 +
 .../llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h      | 1 +
 llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h    | 1 +
 llvm/include/llvm/DebugInfo/DIContext.h                        | 1 +
 .../llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h        | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h      | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFAddressRange.h          | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFAttribute.h             | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h           | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h               | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h         | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h           | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h             | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h        | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h          | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h            | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h        | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h             | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h              | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h            | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h         | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h        | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h         | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h                   | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h            | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h             | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFGdbIndex.h              | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h             | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFLocationExpression.h    | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFObject.h                | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h              | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFSection.h               | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFTypePrinter.h           | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h              | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h                  | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h             | 1 +
 llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h              | 1 +
 llvm/include/llvm/DebugInfo/GSYM/DwarfTransformer.h            | 1 +
 llvm/include/llvm/DebugInfo/GSYM/ExtractRanges.h               | 1 +
 llvm/include/llvm/DebugInfo/GSYM/FileEntry.h                   | 1 +
 llvm/include/llvm/DebugInfo/GSYM/FileWriter.h                  | 1 +
 llvm/include/llvm/DebugInfo/GSYM/FunctionInfo.h                | 1 +
 llvm/include/llvm/DebugInfo/GSYM/GsymCreator.h                 | 1 +
 llvm/include/llvm/DebugInfo/GSYM/GsymReader.h                  | 1 +
 llvm/include/llvm/DebugInfo/GSYM/Header.h                      | 1 +
 llvm/include/llvm/DebugInfo/GSYM/InlineInfo.h                  | 1 +
 llvm/include/llvm/DebugInfo/GSYM/LineEntry.h                   | 1 +
 llvm/include/llvm/DebugInfo/GSYM/LineTable.h                   | 1 +
 llvm/include/llvm/DebugInfo/GSYM/LookupResult.h                | 1 +
 llvm/include/llvm/DebugInfo/GSYM/ObjectFileTransformer.h       | 1 +
 llvm/include/llvm/DebugInfo/GSYM/StringTable.h                 | 1 +
 llvm/include/llvm/DebugInfo/LogicalView/Core/LVCompare.h       | 1 +
 llvm/include/llvm/DebugInfo/LogicalView/Core/LVElement.h       | 1 +
 llvm/include/llvm/DebugInfo/LogicalView/Core/LVLine.h          | 1 +
 llvm/include/llvm/DebugInfo/LogicalView/Core/LVLocation.h      | 1 +
 llvm/include/llvm/DebugInfo/LogicalView/Core/LVObject.h        | 1 +
 llvm/include/llvm/DebugInfo/LogicalView/Core/LVOptions.h       | 1 +
 llvm/include/llvm/DebugInfo/LogicalView/Core/LVRange.h         | 1 +
 llvm/include/llvm/DebugInfo/LogicalView/Core/LVReader.h        | 1 +
 llvm/include/llvm/DebugInfo/LogicalView/Core/LVScope.h         | 1 +
 llvm/include/llvm/DebugInfo/LogicalView/Core/LVSort.h          | 2 ++
 llvm/include/llvm/DebugInfo/LogicalView/Core/LVStringPool.h    | 1 +
 llvm/include/llvm/DebugInfo/LogicalView/Core/LVSupport.h       | 1 +
 llvm/include/llvm/DebugInfo/LogicalView/Core/LVSymbol.h        | 1 +
 llvm/include/llvm/DebugInfo/LogicalView/Core/LVType.h          | 1 +
 llvm/include/llvm/DebugInfo/LogicalView/LVReaderHandler.h      | 1 +
 .../llvm/DebugInfo/LogicalView/Readers/LVBinaryReader.h        | 1 +
 .../llvm/DebugInfo/LogicalView/Readers/LVCodeViewReader.h      | 1 +
 .../llvm/DebugInfo/LogicalView/Readers/LVCodeViewVisitor.h     | 1 +
 llvm/include/llvm/DebugInfo/LogicalView/Readers/LVELFReader.h  | 1 +
 llvm/include/llvm/DebugInfo/MSF/IMSFFile.h                     | 1 +
 llvm/include/llvm/DebugInfo/MSF/MSFBuilder.h                   | 1 +
 llvm/include/llvm/DebugInfo/MSF/MSFCommon.h                    | 1 +
 llvm/include/llvm/DebugInfo/MSF/MSFError.h                     | 1 +
 llvm/include/llvm/DebugInfo/MSF/MappedBlockStream.h            | 1 +
 llvm/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h     | 1 +
 llvm/include/llvm/DebugInfo/PDB/DIA/DIAError.h                 | 1 +
 llvm/include/llvm/DebugInfo/PDB/GenericError.h                 | 1 +
 llvm/include/llvm/DebugInfo/PDB/IPDBDataStream.h               | 1 +
 llvm/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h             | 1 +
 llvm/include/llvm/DebugInfo/PDB/IPDBFrameData.h                | 1 +
 llvm/include/llvm/DebugInfo/PDB/IPDBInjectedSource.h           | 1 +
 llvm/include/llvm/DebugInfo/PDB/IPDBLineNumber.h               | 1 +
 llvm/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h                | 1 +
 llvm/include/llvm/DebugInfo/PDB/IPDBSectionContrib.h           | 1 +
 llvm/include/llvm/DebugInfo/PDB/IPDBSession.h                  | 1 +
 llvm/include/llvm/DebugInfo/PDB/IPDBSourceFile.h               | 1 +
 llvm/include/llvm/DebugInfo/PDB/IPDBTable.h                    | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h   | 1 +
 .../llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h     | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleList.h         | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/DbiStream.h             | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h      | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/EnumTables.h            | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/FormatUtil.h            | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h      | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h         | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/Hash.h                  | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/HashTable.h             | 1 +
 .../include/llvm/DebugInfo/PDB/Native/ISectionContribVisitor.h | 2 ++
 llvm/include/llvm/DebugInfo/PDB/Native/InfoStream.h            | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h     | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h  | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/InputFile.h             | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/LinePrinter.h           | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h     | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NamedStreamMap.h        | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumGlobals.h     | 1 +
 .../llvm/DebugInfo/PDB/Native/NativeEnumInjectedSources.h      | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumLineNumbers.h | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumModules.h     | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumSymbols.h     | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h       | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h       | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativeFunctionSymbol.h  | 1 +
 .../include/llvm/DebugInfo/PDB/Native/NativeInlineSiteSymbol.h | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativeLineNumber.h      | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativePublicSymbol.h    | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h       | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h         | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativeSourceFile.h      | 1 +
 .../include/llvm/DebugInfo/PDB/Native/NativeSymbolEnumerator.h | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeArray.h       | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h     | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeEnum.h        | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeFunctionSig.h | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativeTypePointer.h     | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeTypedef.h     | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeUDT.h         | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h     | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h               | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h        | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTable.h        | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/PublicsStream.h         | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/RawError.h              | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/RawTypes.h              | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/SymbolCache.h           | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/SymbolStream.h          | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/TpiHashing.h            | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/TpiStream.h             | 1 +
 llvm/include/llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h      | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDB.h                          | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBContext.h                   | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBExtras.h                    | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymDumper.h                 | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h                    | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h          | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h               | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h           | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h    | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h        | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h              | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolData.h                | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolExe.h                 | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h                | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h        | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h      | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h               | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h        | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h               | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h           | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h       | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h         | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h          | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h       | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h            | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h          | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h     | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h     | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h         | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h         | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h         | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h             | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h          | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h     | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h             | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h      | 1 +
 llvm/include/llvm/DebugInfo/PDB/PDBTypes.h                     | 1 +
 llvm/include/llvm/DebugInfo/PDB/UDTLayout.h                    | 1 +
 llvm/include/llvm/DebugInfo/Symbolize/DIPrinter.h              | 1 +
 llvm/include/llvm/DebugInfo/Symbolize/Markup.h                 | 1 +
 llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h           | 1 +
 llvm/include/llvm/DebugInfo/Symbolize/SymbolizableModule.h     | 1 +
 llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h | 1 +
 llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h              | 1 +
 llvm/include/llvm/Debuginfod/BuildIDFetcher.h                  | 1 +
 llvm/include/llvm/Debuginfod/Debuginfod.h                      | 1 +
 llvm/include/llvm/Debuginfod/HTTPClient.h                      | 1 +
 llvm/include/llvm/Debuginfod/HTTPServer.h                      | 1 +
 llvm/include/llvm/Demangle/ItaniumDemangle.h                   | 1 +
 llvm/include/llvm/Demangle/MicrosoftDemangle.h                 | 1 +
 llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h            | 1 +
 llvm/include/llvm/Demangle/Utility.h                           | 1 +
 llvm/include/llvm/ExecutionEngine/ExecutionEngine.h            | 1 +
 llvm/include/llvm/ExecutionEngine/GenericValue.h               | 1 +
 llvm/include/llvm/ExecutionEngine/JITEventListener.h           | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/COFF.h               | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/COFF_x86_64.h        | 1 +
 .../llvm/ExecutionEngine/JITLink/DWARFRecordSectionSplitter.h  | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/EHFrameSupport.h     | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/ELF.h                | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/ELF_aarch32.h        | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/ELF_aarch64.h        | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/ELF_i386.h           | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/ELF_loongarch.h      | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/ELF_ppc64.h          | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/ELF_riscv.h          | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/ELF_x86_64.h         | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h            | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/JITLinkDylib.h       | 1 +
 .../llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h        | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/MachO.h              | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/MachO_arm64.h        | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/MachO_x86_64.h       | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/TableManager.h       | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/aarch32.h            | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/aarch64.h            | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/i386.h               | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/loongarch.h          | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/ppc64.h              | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/riscv.h              | 1 +
 llvm/include/llvm/ExecutionEngine/JITLink/x86_64.h             | 1 +
 llvm/include/llvm/ExecutionEngine/JITSymbol.h                  | 1 +
 llvm/include/llvm/ExecutionEngine/MCJIT.h                      | 1 +
 llvm/include/llvm/ExecutionEngine/ObjectCache.h                | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/COFFPlatform.h           | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/COFFVCRuntimeSupport.h   | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h   | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h           | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/Core.h                   | 1 +
 .../llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h        | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/DebugUtils.h             | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/DebuggerSupportPlugin.h  | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/ELFNixPlatform.h         | 1 +
 .../include/llvm/ExecutionEngine/Orc/EPCDebugObjectRegistrar.h | 1 +
 .../ExecutionEngine/Orc/EPCDynamicLibrarySearchGenerator.h     | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/EPCEHFrameRegistrar.h    | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/EPCGenericDylibManager.h | 1 +
 .../llvm/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManager.h  | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/EPCGenericMemoryAccess.h | 1 +
 .../llvm/ExecutionEngine/Orc/EPCGenericRTDyldMemoryManager.h   | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/EPCIndirectionUtils.h    | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h         | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/ExecutorProcessControl.h | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h         | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h       | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h       | 1 +
 .../include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h                  | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/Layer.h                  | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h          | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/LookupAndRecordAddrs.h   | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h          | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/Mangling.h               | 1 +
 .../llvm/ExecutionEngine/Orc/MapperJITLinkMemoryManager.h      | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/MemoryMapper.h           | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/ObjectFileInterface.h    | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h     | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h   | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h          | 1 +
 .../llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h        | 1 +
 .../llvm/ExecutionEngine/Orc/Shared/AllocationActions.h        | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h | 1 +
 .../llvm/ExecutionEngine/Orc/Shared/ExecutorSymbolDef.h        | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/Shared/MemoryFlags.h     | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/Shared/ObjectFormats.h   | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcError.h        | 1 +
 .../ExecutionEngine/Orc/Shared/SimplePackedSerialization.h     | 1 +
 .../llvm/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.h     | 1 +
 .../ExecutionEngine/Orc/Shared/TargetProcessControlTypes.h     | 1 +
 .../llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h     | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/SimpleRemoteEPC.h        | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/SpeculateAnalyses.h      | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/Speculation.h            | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h       | 1 +
 .../Orc/TargetProcess/ExecutorBootstrapService.h               | 1 +
 .../Orc/TargetProcess/ExecutorSharedMemoryMapperService.h      | 1 +
 .../llvm/ExecutionEngine/Orc/TargetProcess/JITLoaderGDB.h      | 1 +
 .../llvm/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.h  | 1 +
 .../Orc/TargetProcess/SimpleExecutorDylibManager.h             | 1 +
 .../Orc/TargetProcess/SimpleExecutorMemoryManager.h            | 1 +
 .../ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h  | 1 +
 .../ExecutionEngine/Orc/TargetProcess/TargetExecutionUtils.h   | 1 +
 llvm/include/llvm/ExecutionEngine/Orc/TaskDispatch.h           | 1 +
 llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h        | 1 +
 llvm/include/llvm/ExecutionEngine/RuntimeDyld.h                | 1 +
 llvm/include/llvm/ExecutionEngine/RuntimeDyldChecker.h         | 1 +
 llvm/include/llvm/ExecutionEngine/SectionMemoryManager.h       | 1 +
 llvm/include/llvm/FileCheck/FileCheck.h                        | 1 +
 llvm/include/llvm/Frontend/HLSL/HLSLResource.h                 | 1 +
 llvm/include/llvm/Frontend/OpenMP/OMPContext.h                 | 1 +
 llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h               | 1 +
 llvm/include/llvm/FuzzMutate/FuzzerCLI.h                       | 1 +
 llvm/include/llvm/FuzzMutate/IRMutator.h                       | 1 +
 llvm/include/llvm/FuzzMutate/OpDescriptor.h                    | 1 +
 llvm/include/llvm/FuzzMutate/Operations.h                      | 1 +
 llvm/include/llvm/FuzzMutate/Random.h                          | 1 +
 llvm/include/llvm/FuzzMutate/RandomIRBuilder.h                 | 1 +
 llvm/include/llvm/IR/AbstractCallSite.h                        | 1 +
 llvm/include/llvm/IR/Argument.h                                | 1 +
 llvm/include/llvm/IR/AssemblyAnnotationWriter.h                | 2 ++
 llvm/include/llvm/IR/Assumptions.h                             | 1 +
 llvm/include/llvm/IR/AttributeMask.h                           | 1 +
 llvm/include/llvm/IR/Attributes.h                              | 1 +
 llvm/include/llvm/IR/AutoUpgrade.h                             | 1 +
 llvm/include/llvm/IR/BasicBlock.h                              | 1 +
 llvm/include/llvm/IR/BuiltinGCs.h                              | 2 ++
 llvm/include/llvm/IR/CFG.h                                     | 1 +
 llvm/include/llvm/IR/Comdat.h                                  | 1 +
 llvm/include/llvm/IR/Constant.h                                | 1 +
 llvm/include/llvm/IR/ConstantFold.h                            | 1 +
 llvm/include/llvm/IR/ConstantFolder.h                          | 1 +
 llvm/include/llvm/IR/DIBuilder.h                               | 1 +
 llvm/include/llvm/IR/DebugInfo.h                               | 1 +
 llvm/include/llvm/IR/DebugInfoMetadata.h                       | 1 +
 llvm/include/llvm/IR/DebugLoc.h                                | 1 +
 llvm/include/llvm/IR/DerivedUser.h                             | 1 +
 llvm/include/llvm/IR/DiagnosticHandler.h                       | 1 +
 llvm/include/llvm/IR/DiagnosticInfo.h                          | 1 +
 llvm/include/llvm/IR/DiagnosticPrinter.h                       | 1 +
 llvm/include/llvm/IR/Dominators.h                              | 1 +
 llvm/include/llvm/IR/EHPersonalities.h                         | 1 +
 llvm/include/llvm/IR/FMF.h                                     | 2 ++
 llvm/include/llvm/IR/FPEnv.h                                   | 1 +
 llvm/include/llvm/IR/Function.h                                | 1 +
 llvm/include/llvm/IR/GCStrategy.h                              | 1 +
 llvm/include/llvm/IR/GVMaterializer.h                          | 1 +
 llvm/include/llvm/IR/GetElementPtrTypeIterator.h               | 1 +
 llvm/include/llvm/IR/GlobalAlias.h                             | 1 +
 llvm/include/llvm/IR/GlobalIFunc.h                             | 1 +
 llvm/include/llvm/IR/GlobalObject.h                            | 1 +
 llvm/include/llvm/IR/GlobalValue.h                             | 1 +
 llvm/include/llvm/IR/GlobalVariable.h                          | 1 +
 llvm/include/llvm/IR/IRBuilder.h                               | 1 +
 llvm/include/llvm/IR/IRBuilderFolder.h                         | 1 +
 llvm/include/llvm/IR/IRPrintingPasses.h                        | 1 +
 llvm/include/llvm/IR/InlineAsm.h                               | 1 +
 llvm/include/llvm/IR/InstIterator.h                            | 1 +
 llvm/include/llvm/IR/InstVisitor.h                             | 1 +
 llvm/include/llvm/IR/InstrTypes.h                              | 1 +
 llvm/include/llvm/IR/Instruction.h                             | 1 +
 llvm/include/llvm/IR/Instructions.h                            | 1 +
 llvm/include/llvm/IR/IntrinsicInst.h                           | 1 +
 llvm/include/llvm/IR/Intrinsics.h                              | 1 +
 llvm/include/llvm/IR/LLVMContext.h                             | 1 +
 llvm/include/llvm/IR/LLVMRemarkStreamer.h                      | 1 +
 llvm/include/llvm/IR/LegacyPassManager.h                       | 1 +
 llvm/include/llvm/IR/LegacyPassManagers.h                      | 1 +
 llvm/include/llvm/IR/LegacyPassNameParser.h                    | 1 +
 llvm/include/llvm/IR/MDBuilder.h                               | 1 +
 llvm/include/llvm/IR/Mangler.h                                 | 1 +
 llvm/include/llvm/IR/MatrixBuilder.h                           | 1 +
 llvm/include/llvm/IR/Metadata.h                                | 1 +
 llvm/include/llvm/IR/Module.h                                  | 1 +
 llvm/include/llvm/IR/ModuleSlotTracker.h                       | 1 +
 llvm/include/llvm/IR/ModuleSummaryIndex.h                      | 1 +
 llvm/include/llvm/IR/ModuleSummaryIndexYAML.h                  | 1 +
 llvm/include/llvm/IR/NoFolder.h                                | 1 +
 llvm/include/llvm/IR/OperandTraits.h                           | 1 +
 llvm/include/llvm/IR/Operator.h                                | 1 +
 llvm/include/llvm/IR/OptBisect.h                               | 1 +
 llvm/include/llvm/IR/PassInstrumentation.h                     | 1 +
 llvm/include/llvm/IR/PassManager.h                             | 1 +
 llvm/include/llvm/IR/PassManagerInternal.h                     | 1 +
 llvm/include/llvm/IR/PassTimingInfo.h                          | 1 +
 llvm/include/llvm/IR/PatternMatch.h                            | 1 +
 llvm/include/llvm/IR/PredIteratorCache.h                       | 1 +
 llvm/include/llvm/IR/PrintPasses.h                             | 1 +
 llvm/include/llvm/IR/ProfDataUtils.h                           | 1 +
 llvm/include/llvm/IR/ProfileSummary.h                          | 1 +
 llvm/include/llvm/IR/PseudoProbe.h                             | 1 +
 llvm/include/llvm/IR/ReplaceConstant.h                         | 1 +
 llvm/include/llvm/IR/SSAContext.h                              | 1 +
 llvm/include/llvm/IR/SafepointIRVerifier.h                     | 1 +
 llvm/include/llvm/IR/Statepoint.h                              | 1 +
 llvm/include/llvm/IR/StructuralHash.h                          | 1 +
 llvm/include/llvm/IR/SymbolTableListTraits.h                   | 1 +
 llvm/include/llvm/IR/TrackingMDRef.h                           | 1 +
 llvm/include/llvm/IR/TypeFinder.h                              | 1 +
 llvm/include/llvm/IR/TypedPointerType.h                        | 1 +
 llvm/include/llvm/IR/UseListOrder.h                            | 1 +
 llvm/include/llvm/IR/Value.h                                   | 1 +
 llvm/include/llvm/IR/ValueHandle.h                             | 1 +
 llvm/include/llvm/IR/ValueMap.h                                | 1 +
 llvm/include/llvm/IR/ValueSymbolTable.h                        | 1 +
 llvm/include/llvm/IR/VectorBuilder.h                           | 1 +
 llvm/include/llvm/IR/Verifier.h                                | 1 +
 llvm/include/llvm/IRPrinter/IRPrintingPasses.h                 | 1 +
 llvm/include/llvm/IRReader/IRReader.h                          | 1 +
 llvm/include/llvm/InitializePasses.h                           | 2 ++
 llvm/include/llvm/InterfaceStub/ELFObjHandler.h                | 1 +
 llvm/include/llvm/InterfaceStub/IFSHandler.h                   | 1 +
 llvm/include/llvm/InterfaceStub/IFSStub.h                      | 1 +
 llvm/include/llvm/LTO/Config.h                                 | 1 +
 llvm/include/llvm/LTO/LTO.h                                    | 1 +
 llvm/include/llvm/LTO/LTOBackend.h                             | 1 +
 llvm/include/llvm/LTO/SummaryBasedOptimizations.h              | 3 +++
 llvm/include/llvm/LTO/legacy/LTOCodeGenerator.h                | 1 +
 llvm/include/llvm/LTO/legacy/LTOModule.h                       | 1 +
 llvm/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h            | 1 +
 llvm/include/llvm/LTO/legacy/UpdateCompilerUsed.h              | 1 +
 llvm/include/llvm/Linker/IRMover.h                             | 1 +
 llvm/include/llvm/Linker/Linker.h                              | 1 +
 llvm/include/llvm/MC/ConstantPools.h                           | 1 +
 llvm/include/llvm/MC/DXContainerPSVInfo.h                      | 1 +
 llvm/include/llvm/MC/MCAsmBackend.h                            | 1 +
 llvm/include/llvm/MC/MCAsmInfo.h                               | 1 +
 llvm/include/llvm/MC/MCAsmInfoCOFF.h                           | 1 +
 llvm/include/llvm/MC/MCAsmInfoDarwin.h                         | 1 +
 llvm/include/llvm/MC/MCAsmInfoELF.h                            | 1 +
 llvm/include/llvm/MC/MCAsmInfoGOFF.h                           | 1 +
 llvm/include/llvm/MC/MCAsmInfoWasm.h                           | 1 +
 llvm/include/llvm/MC/MCAsmInfoXCOFF.h                          | 1 +
 llvm/include/llvm/MC/MCAsmLayout.h                             | 1 +
 llvm/include/llvm/MC/MCAsmMacro.h                              | 1 +
 llvm/include/llvm/MC/MCAssembler.h                             | 1 +
 llvm/include/llvm/MC/MCCodeEmitter.h                           | 2 ++
 llvm/include/llvm/MC/MCCodeView.h                              | 1 +
 llvm/include/llvm/MC/MCDXContainerStreamer.h                   | 1 +
 llvm/include/llvm/MC/MCDXContainerWriter.h                     | 1 +
 llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h           | 1 +
 llvm/include/llvm/MC/MCDisassembler/MCExternalSymbolizer.h     | 1 +
 llvm/include/llvm/MC/MCDisassembler/MCRelocationInfo.h         | 2 ++
 llvm/include/llvm/MC/MCDisassembler/MCSymbolizer.h             | 1 +
 llvm/include/llvm/MC/MCDwarf.h                                 | 1 +
 llvm/include/llvm/MC/MCELFObjectWriter.h                       | 1 +
 llvm/include/llvm/MC/MCELFStreamer.h                           | 1 +
 llvm/include/llvm/MC/MCExpr.h                                  | 1 +
 llvm/include/llvm/MC/MCFixup.h                                 | 1 +
 llvm/include/llvm/MC/MCFixupKindInfo.h                         | 2 ++
 llvm/include/llvm/MC/MCFragment.h                              | 1 +
 llvm/include/llvm/MC/MCInst.h                                  | 1 +
 llvm/include/llvm/MC/MCInstBuilder.h                           | 1 +
 llvm/include/llvm/MC/MCInstPrinter.h                           | 1 +
 llvm/include/llvm/MC/MCInstrAnalysis.h                         | 1 +
 llvm/include/llvm/MC/MCInstrDesc.h                             | 1 +
 llvm/include/llvm/MC/MCInstrInfo.h                             | 1 +
 llvm/include/llvm/MC/MCInstrItineraries.h                      | 1 +
 llvm/include/llvm/MC/MCLabel.h                                 | 2 ++
 llvm/include/llvm/MC/MCLinkerOptimizationHint.h                | 1 +
 llvm/include/llvm/MC/MCMachObjectWriter.h                      | 1 +
 llvm/include/llvm/MC/MCObjectFileInfo.h                        | 1 +
 llvm/include/llvm/MC/MCObjectStreamer.h                        | 1 +
 llvm/include/llvm/MC/MCObjectWriter.h                          | 1 +
 llvm/include/llvm/MC/MCParser/AsmCond.h                        | 2 ++
 llvm/include/llvm/MC/MCParser/AsmLexer.h                       | 1 +
 llvm/include/llvm/MC/MCParser/MCAsmLexer.h                     | 1 +
 llvm/include/llvm/MC/MCParser/MCAsmParser.h                    | 1 +
 llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h           | 1 +
 llvm/include/llvm/MC/MCParser/MCAsmParserUtils.h               | 2 ++
 llvm/include/llvm/MC/MCParser/MCParsedAsmOperand.h             | 1 +
 llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h              | 1 +
 llvm/include/llvm/MC/MCPseudoProbe.h                           | 1 +
 llvm/include/llvm/MC/MCRegister.h                              | 1 +
 llvm/include/llvm/MC/MCRegisterInfo.h                          | 1 +
 llvm/include/llvm/MC/MCSPIRVObjectWriter.h                     | 1 +
 llvm/include/llvm/MC/MCSPIRVStreamer.h                         | 1 +
 llvm/include/llvm/MC/MCSchedule.h                              | 1 +
 llvm/include/llvm/MC/MCSection.h                               | 1 +
 llvm/include/llvm/MC/MCSectionCOFF.h                           | 1 +
 llvm/include/llvm/MC/MCSectionDXContainer.h                    | 1 +
 llvm/include/llvm/MC/MCSectionELF.h                            | 1 +
 llvm/include/llvm/MC/MCSectionGOFF.h                           | 1 +
 llvm/include/llvm/MC/MCSectionMachO.h                          | 1 +
 llvm/include/llvm/MC/MCSectionSPIRV.h                          | 1 +
 llvm/include/llvm/MC/MCSectionWasm.h                           | 1 +
 llvm/include/llvm/MC/MCSectionXCOFF.h                          | 1 +
 llvm/include/llvm/MC/MCStreamer.h                              | 1 +
 llvm/include/llvm/MC/MCSubtargetInfo.h                         | 1 +
 llvm/include/llvm/MC/MCSymbol.h                                | 1 +
 llvm/include/llvm/MC/MCSymbolCOFF.h                            | 1 +
 llvm/include/llvm/MC/MCSymbolELF.h                             | 1 +
 llvm/include/llvm/MC/MCSymbolGOFF.h                            | 1 +
 llvm/include/llvm/MC/MCSymbolMachO.h                           | 1 +
 llvm/include/llvm/MC/MCSymbolWasm.h                            | 1 +
 llvm/include/llvm/MC/MCSymbolXCOFF.h                           | 1 +
 llvm/include/llvm/MC/MCTargetOptions.h                         | 1 +
 llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h             | 1 +
 llvm/include/llvm/MC/MCValue.h                                 | 1 +
 llvm/include/llvm/MC/MCWasmObjectWriter.h                      | 1 +
 llvm/include/llvm/MC/MCWasmStreamer.h                          | 1 +
 llvm/include/llvm/MC/MCWin64EH.h                               | 1 +
 llvm/include/llvm/MC/MCWinCOFFObjectWriter.h                   | 1 +
 llvm/include/llvm/MC/MCWinCOFFStreamer.h                       | 1 +
 llvm/include/llvm/MC/MCWinEH.h                                 | 1 +
 llvm/include/llvm/MC/MCXCOFFObjectWriter.h                     | 1 +
 llvm/include/llvm/MC/MCXCOFFStreamer.h                         | 1 +
 llvm/include/llvm/MC/MachineLocation.h                         | 1 +
 llvm/include/llvm/MC/SectionKind.h                             | 2 ++
 llvm/include/llvm/MC/StringTableBuilder.h                      | 1 +
 llvm/include/llvm/MC/TargetRegistry.h                          | 1 +
 llvm/include/llvm/MCA/CodeEmitter.h                            | 1 +
 llvm/include/llvm/MCA/Context.h                                | 1 +
 llvm/include/llvm/MCA/CustomBehaviour.h                        | 1 +
 llvm/include/llvm/MCA/HWEventListener.h                        | 1 +
 llvm/include/llvm/MCA/HardwareUnits/HardwareUnit.h             | 2 ++
 llvm/include/llvm/MCA/HardwareUnits/LSUnit.h                   | 1 +
 llvm/include/llvm/MCA/HardwareUnits/RegisterFile.h             | 1 +
 llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h          | 1 +
 llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h        | 1 +
 llvm/include/llvm/MCA/HardwareUnits/Scheduler.h                | 1 +
 llvm/include/llvm/MCA/IncrementalSourceMgr.h                   | 1 +
 llvm/include/llvm/MCA/InstrBuilder.h                           | 1 +
 llvm/include/llvm/MCA/Instruction.h                            | 1 +
 llvm/include/llvm/MCA/Pipeline.h                               | 1 +
 llvm/include/llvm/MCA/SourceMgr.h                              | 1 +
 llvm/include/llvm/MCA/Stages/DispatchStage.h                   | 1 +
 llvm/include/llvm/MCA/Stages/EntryStage.h                      | 1 +
 llvm/include/llvm/MCA/Stages/ExecuteStage.h                    | 1 +
 llvm/include/llvm/MCA/Stages/InOrderIssueStage.h               | 1 +
 llvm/include/llvm/MCA/Stages/InstructionTables.h               | 1 +
 llvm/include/llvm/MCA/Stages/MicroOpQueueStage.h               | 1 +
 llvm/include/llvm/MCA/Stages/RetireStage.h                     | 1 +
 llvm/include/llvm/MCA/Stages/Stage.h                           | 1 +
 llvm/include/llvm/MCA/Support.h                                | 1 +
 llvm/include/llvm/MCA/View.h                                   | 1 +
 llvm/include/llvm/ObjCopy/COFF/COFFConfig.h                    | 1 +
 llvm/include/llvm/ObjCopy/COFF/COFFObjcopy.h                   | 2 ++
 llvm/include/llvm/ObjCopy/CommonConfig.h                       | 1 +
 llvm/include/llvm/ObjCopy/ConfigManager.h                      | 1 +
 llvm/include/llvm/ObjCopy/ELF/ELFConfig.h                      | 1 +
 llvm/include/llvm/ObjCopy/ELF/ELFObjcopy.h                     | 2 ++
 llvm/include/llvm/ObjCopy/MachO/MachOConfig.h                  | 1 +
 llvm/include/llvm/ObjCopy/MachO/MachOObjcopy.h                 | 2 ++
 llvm/include/llvm/ObjCopy/MultiFormatConfig.h                  | 1 +
 llvm/include/llvm/ObjCopy/ObjCopy.h                            | 1 +
 llvm/include/llvm/ObjCopy/XCOFF/XCOFFConfig.h                  | 2 ++
 llvm/include/llvm/ObjCopy/XCOFF/XCOFFObjcopy.h                 | 2 ++
 llvm/include/llvm/ObjCopy/wasm/WasmConfig.h                    | 2 ++
 llvm/include/llvm/ObjCopy/wasm/WasmObjcopy.h                   | 2 ++
 llvm/include/llvm/Object/Archive.h                             | 1 +
 llvm/include/llvm/Object/ArchiveWriter.h                       | 1 +
 llvm/include/llvm/Object/Binary.h                              | 1 +
 llvm/include/llvm/Object/BuildID.h                             | 1 +
 llvm/include/llvm/Object/COFF.h                                | 1 +
 llvm/include/llvm/Object/COFFImportFile.h                      | 1 +
 llvm/include/llvm/Object/COFFModuleDefinition.h                | 1 +
 llvm/include/llvm/Object/CVDebugRecord.h                       | 1 +
 llvm/include/llvm/Object/DXContainer.h                         | 1 +
 llvm/include/llvm/Object/Decompressor.h                        | 1 +
 llvm/include/llvm/Object/ELF.h                                 | 1 +
 llvm/include/llvm/Object/ELFObjectFile.h                       | 1 +
 llvm/include/llvm/Object/ELFTypes.h                            | 1 +
 llvm/include/llvm/Object/Error.h                               | 1 +
 llvm/include/llvm/Object/FaultMapParser.h                      | 1 +
 llvm/include/llvm/Object/GOFF.h                                | 1 +
 llvm/include/llvm/Object/GOFFObjectFile.h                      | 1 +
 llvm/include/llvm/Object/IRObjectFile.h                        | 1 +
 llvm/include/llvm/Object/IRSymtab.h                            | 1 +
 llvm/include/llvm/Object/MachO.h                               | 1 +
 llvm/include/llvm/Object/MachOUniversal.h                      | 1 +
 llvm/include/llvm/Object/MachOUniversalWriter.h                | 1 +
 llvm/include/llvm/Object/Minidump.h                            | 1 +
 llvm/include/llvm/Object/ModuleSymbolTable.h                   | 1 +
 llvm/include/llvm/Object/ObjectFile.h                          | 1 +
 llvm/include/llvm/Object/OffloadBinary.h                       | 1 +
 llvm/include/llvm/Object/RelocationResolver.h                  | 1 +
 llvm/include/llvm/Object/SymbolSize.h                          | 1 +
 llvm/include/llvm/Object/SymbolicFile.h                        | 1 +
 llvm/include/llvm/Object/TapiFile.h                            | 1 +
 llvm/include/llvm/Object/TapiUniversal.h                       | 1 +
 llvm/include/llvm/Object/Wasm.h                                | 1 +
 llvm/include/llvm/Object/WindowsMachineFlag.h                  | 2 ++
 llvm/include/llvm/Object/WindowsResource.h                     | 1 +
 llvm/include/llvm/Object/XCOFFObjectFile.h                     | 1 +
 llvm/include/llvm/ObjectYAML/ArchiveYAML.h                     | 1 +
 llvm/include/llvm/ObjectYAML/COFFYAML.h                        | 1 +
 llvm/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h       | 1 +
 llvm/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h             | 1 +
 llvm/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h         | 1 +
 llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h               | 1 +
 llvm/include/llvm/ObjectYAML/DWARFEmitter.h                    | 1 +
 llvm/include/llvm/ObjectYAML/DWARFYAML.h                       | 1 +
 llvm/include/llvm/ObjectYAML/DXContainerYAML.h                 | 1 +
 llvm/include/llvm/ObjectYAML/ELFYAML.h                         | 1 +
 llvm/include/llvm/ObjectYAML/MachOYAML.h                       | 1 +
 llvm/include/llvm/ObjectYAML/MinidumpYAML.h                    | 1 +
 llvm/include/llvm/ObjectYAML/ObjectYAML.h                      | 1 +
 llvm/include/llvm/ObjectYAML/OffloadYAML.h                     | 1 +
 llvm/include/llvm/ObjectYAML/WasmYAML.h                        | 1 +
 llvm/include/llvm/ObjectYAML/XCOFFYAML.h                       | 1 +
 llvm/include/llvm/ObjectYAML/YAML.h                            | 1 +
 llvm/include/llvm/ObjectYAML/yaml2obj.h                        | 1 +
 llvm/include/llvm/Option/Arg.h                                 | 1 +
 llvm/include/llvm/Option/ArgList.h                             | 1 +
 llvm/include/llvm/Option/OptSpecifier.h                        | 2 ++
 llvm/include/llvm/Option/OptTable.h                            | 1 +
 llvm/include/llvm/Option/Option.h                              | 1 +
 llvm/include/llvm/Pass.h                                       | 1 +
 llvm/include/llvm/PassAnalysisSupport.h                        | 1 +
 llvm/include/llvm/PassInfo.h                                   | 1 +
 llvm/include/llvm/PassRegistry.h                               | 1 +
 llvm/include/llvm/PassSupport.h                                | 1 +
 llvm/include/llvm/Passes/OptimizationLevel.h                   | 1 +
 llvm/include/llvm/Passes/PassBuilder.h                         | 1 +
 llvm/include/llvm/Passes/StandardInstrumentations.h            | 1 +
 llvm/include/llvm/ProfileData/Coverage/CoverageMappingReader.h | 1 +
 llvm/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h | 1 +
 llvm/include/llvm/ProfileData/GCOV.h                           | 1 +
 llvm/include/llvm/ProfileData/InstrProfCorrelator.h            | 1 +
 llvm/include/llvm/ProfileData/InstrProfReader.h                | 1 +
 llvm/include/llvm/ProfileData/InstrProfWriter.h                | 1 +
 llvm/include/llvm/ProfileData/ItaniumManglingCanonicalizer.h   | 1 +
 llvm/include/llvm/ProfileData/MemProf.h                        | 1 +
 llvm/include/llvm/ProfileData/ProfileCommon.h                  | 1 +
 llvm/include/llvm/ProfileData/RawMemProfReader.h               | 1 +
 llvm/include/llvm/ProfileData/SampleProf.h                     | 1 +
 llvm/include/llvm/ProfileData/SampleProfReader.h               | 1 +
 llvm/include/llvm/ProfileData/SampleProfWriter.h               | 1 +
 llvm/include/llvm/ProfileData/SymbolRemappingReader.h          | 1 +
 llvm/include/llvm/Remarks/BitstreamRemarkParser.h              | 1 +
 llvm/include/llvm/Remarks/BitstreamRemarkSerializer.h          | 1 +
 llvm/include/llvm/Remarks/HotnessThresholdParser.h             | 1 +
 llvm/include/llvm/Remarks/Remark.h                             | 1 +
 llvm/include/llvm/Remarks/RemarkFormat.h                       | 1 +
 llvm/include/llvm/Remarks/RemarkLinker.h                       | 1 +
 llvm/include/llvm/Remarks/RemarkParser.h                       | 1 +
 llvm/include/llvm/Remarks/RemarkSerializer.h                   | 1 +
 llvm/include/llvm/Remarks/RemarkStreamer.h                     | 1 +
 llvm/include/llvm/Remarks/RemarkStringTable.h                  | 1 +
 llvm/include/llvm/Remarks/YAMLRemarkSerializer.h               | 1 +
 llvm/include/llvm/Support/AMDGPUMetadata.h                     | 1 +
 llvm/include/llvm/Support/ARMAttributeParser.h                 | 1 +
 llvm/include/llvm/Support/ARMBuildAttributes.h                 | 1 +
 llvm/include/llvm/Support/ARMWinEH.h                           | 1 +
 llvm/include/llvm/Support/Alignment.h                          | 1 +
 llvm/include/llvm/Support/ArrayRecycler.h                      | 1 +
 llvm/include/llvm/Support/Automaton.h                          | 1 +
 llvm/include/llvm/Support/BLAKE3.h                             | 1 +
 llvm/include/llvm/Support/BalancedPartitioning.h               | 1 +
 llvm/include/llvm/Support/Base64.h                             | 1 +
 llvm/include/llvm/Support/BinaryByteStream.h                   | 1 +
 llvm/include/llvm/Support/BinaryItemStream.h                   | 1 +
 llvm/include/llvm/Support/BinaryStream.h                       | 1 +
 llvm/include/llvm/Support/BinaryStreamArray.h                  | 1 +
 llvm/include/llvm/Support/BinaryStreamError.h                  | 1 +
 llvm/include/llvm/Support/BinaryStreamReader.h                 | 1 +
 llvm/include/llvm/Support/BinaryStreamRef.h                    | 1 +
 llvm/include/llvm/Support/BinaryStreamWriter.h                 | 1 +
 llvm/include/llvm/Support/CFGDiff.h                            | 1 +
 llvm/include/llvm/Support/CSKYAttributeParser.h                | 1 +
 llvm/include/llvm/Support/CSKYAttributes.h                     | 1 +
 llvm/include/llvm/Support/CachePruning.h                       | 1 +
 llvm/include/llvm/Support/Caching.h                            | 1 +
 llvm/include/llvm/Support/CodeGenCoverage.h                    | 1 +
 llvm/include/llvm/Support/CommandLine.h                        | 1 +
 llvm/include/llvm/Support/Compression.h                        | 1 +
 llvm/include/llvm/Support/ConvertEBCDIC.h                      | 1 +
 llvm/include/llvm/Support/CrashRecoveryContext.h               | 1 +
 llvm/include/llvm/Support/DJB.h                                | 1 +
 llvm/include/llvm/Support/DOTGraphTraits.h                     | 1 +
 llvm/include/llvm/Support/DataExtractor.h                      | 1 +
 llvm/include/llvm/Support/DebugCounter.h                       | 1 +
 llvm/include/llvm/Support/DivisionByConstantInfo.h             | 1 +
 llvm/include/llvm/Support/Duration.h                           | 1 +
 llvm/include/llvm/Support/ELFAttributeParser.h                 | 1 +
 llvm/include/llvm/Support/ELFAttributes.h                      | 1 +
 llvm/include/llvm/Support/EndianStream.h                       | 1 +
 llvm/include/llvm/Support/ErrorOr.h                            | 1 +
 llvm/include/llvm/Support/FileCollector.h                      | 1 +
 llvm/include/llvm/Support/FileOutputBuffer.h                   | 1 +
 llvm/include/llvm/Support/FileSystem.h                         | 1 +
 llvm/include/llvm/Support/FileSystem/UniqueID.h                | 1 +
 llvm/include/llvm/Support/FileUtilities.h                      | 1 +
 llvm/include/llvm/Support/Format.h                             | 1 +
 llvm/include/llvm/Support/FormatAdapters.h                     | 1 +
 llvm/include/llvm/Support/FormatCommon.h                       | 1 +
 llvm/include/llvm/Support/FormatProviders.h                    | 1 +
 llvm/include/llvm/Support/FormatVariadic.h                     | 1 +
 llvm/include/llvm/Support/FormatVariadicDetails.h              | 1 +
 llvm/include/llvm/Support/FormattedStream.h                    | 1 +
 llvm/include/llvm/Support/GenericDomTree.h                     | 1 +
 llvm/include/llvm/Support/GenericDomTreeConstruction.h         | 1 +
 llvm/include/llvm/Support/GenericIteratedDominanceFrontier.h   | 1 +
 llvm/include/llvm/Support/GenericLoopInfo.h                    | 1 +
 llvm/include/llvm/Support/GenericLoopInfoImpl.h                | 1 +
 llvm/include/llvm/Support/GlobPattern.h                        | 1 +
 llvm/include/llvm/Support/GraphWriter.h                        | 1 +
 llvm/include/llvm/Support/HashBuilder.h                        | 1 +
 llvm/include/llvm/Support/InitLLVM.h                           | 1 +
 llvm/include/llvm/Support/InstructionCost.h                    | 1 +
 llvm/include/llvm/Support/JSON.h                               | 1 +
 llvm/include/llvm/Support/KnownBits.h                          | 1 +
 llvm/include/llvm/Support/LEB128.h                             | 1 +
 llvm/include/llvm/Support/LineIterator.h                       | 1 +
 llvm/include/llvm/Support/LockFileManager.h                    | 1 +
 llvm/include/llvm/Support/MD5.h                                | 1 +
 llvm/include/llvm/Support/MSP430AttributeParser.h              | 1 +
 llvm/include/llvm/Support/MSP430Attributes.h                   | 1 +
 llvm/include/llvm/Support/MSVCErrorWorkarounds.h               | 1 +
 llvm/include/llvm/Support/MemoryBuffer.h                       | 1 +
 llvm/include/llvm/Support/MemoryBufferRef.h                    | 1 +
 llvm/include/llvm/Support/ModRef.h                             | 1 +
 llvm/include/llvm/Support/Mutex.h                              | 1 +
 llvm/include/llvm/Support/OnDiskHashTable.h                    | 1 +
 llvm/include/llvm/Support/OptimizedStructLayout.h              | 1 +
 llvm/include/llvm/Support/PGOOptions.h                         | 1 +
 llvm/include/llvm/Support/Parallel.h                           | 1 +
 llvm/include/llvm/Support/Path.h                               | 1 +
 llvm/include/llvm/Support/PerThreadBumpPtrAllocator.h          | 1 +
 llvm/include/llvm/Support/PointerLikeTypeTraits.h              | 1 +
 llvm/include/llvm/Support/Printable.h                          | 1 +
 llvm/include/llvm/Support/Process.h                            | 1 +
 llvm/include/llvm/Support/Program.h                            | 1 +
 llvm/include/llvm/Support/RISCVAttributeParser.h               | 1 +
 llvm/include/llvm/Support/RISCVAttributes.h                    | 1 +
 llvm/include/llvm/Support/RISCVISAInfo.h                       | 1 +
 llvm/include/llvm/Support/RWMutex.h                            | 1 +
 llvm/include/llvm/Support/Recycler.h                           | 1 +
 llvm/include/llvm/Support/RecyclingAllocator.h                 | 1 +
 llvm/include/llvm/Support/Regex.h                              | 1 +
 llvm/include/llvm/Support/SMLoc.h                              | 1 +
 llvm/include/llvm/Support/SMTAPI.h                             | 1 +
 llvm/include/llvm/Support/SaveAndRestore.h                     | 1 +
 llvm/include/llvm/Support/ScaledNumber.h                       | 1 +
 llvm/include/llvm/Support/ScopedPrinter.h                      | 1 +
 llvm/include/llvm/Support/SmallVectorMemoryBuffer.h            | 1 +
 llvm/include/llvm/Support/SourceMgr.h                          | 1 +
 llvm/include/llvm/Support/SpecialCaseList.h                    | 1 +
 llvm/include/llvm/Support/StringSaver.h                        | 1 +
 llvm/include/llvm/Support/SuffixTree.h                         | 1 +
 llvm/include/llvm/Support/SuffixTreeNode.h                     | 1 +
 llvm/include/llvm/Support/TarWriter.h                          | 1 +
 llvm/include/llvm/Support/ThreadPool.h                         | 1 +
 llvm/include/llvm/Support/TimeProfiler.h                       | 1 +
 llvm/include/llvm/Support/Timer.h                              | 1 +
 llvm/include/llvm/Support/ToolOutputFile.h                     | 1 +
 llvm/include/llvm/Support/Unicode.h                            | 1 +
 llvm/include/llvm/Support/VersionTuple.h                       | 1 +
 llvm/include/llvm/Support/VirtualFileSystem.h                  | 1 +
 llvm/include/llvm/Support/Win64EH.h                            | 1 +
 llvm/include/llvm/Support/WindowsError.h                       | 1 +
 llvm/include/llvm/Support/WithColor.h                          | 1 +
 llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h       | 1 +
 llvm/include/llvm/Support/YAMLParser.h                         | 1 +
 llvm/include/llvm/Support/YAMLTraits.h                         | 1 +
 llvm/include/llvm/Support/circular_raw_ostream.h               | 1 +
 llvm/include/llvm/Support/raw_os_ostream.h                     | 1 +
 llvm/include/llvm/Support/raw_ostream.h                        | 1 +
 llvm/include/llvm/Support/thread.h                             | 1 +
 llvm/include/llvm/Support/xxhash.h                             | 1 +
 llvm/include/llvm/TableGen/Error.h                             | 1 +
 llvm/include/llvm/TableGen/Main.h                              | 1 +
 llvm/include/llvm/TableGen/Parser.h                            | 1 +
 llvm/include/llvm/TableGen/Record.h                            | 1 +
 llvm/include/llvm/TableGen/SetTheory.h                         | 1 +
 llvm/include/llvm/TableGen/StringMatcher.h                     | 1 +
 llvm/include/llvm/TableGen/TableGenBackend.h                   | 1 +
 llvm/include/llvm/Target/CGPassBuilderOption.h                 | 1 +
 llvm/include/llvm/Target/TargetIntrinsicInfo.h                 | 1 +
 llvm/include/llvm/Target/TargetLoweringObjectFile.h            | 1 +
 llvm/include/llvm/Target/TargetMachine.h                       | 1 +
 llvm/include/llvm/Target/TargetOptions.h                       | 1 +
 llvm/include/llvm/TargetParser/AArch64TargetParser.h           | 1 +
 llvm/include/llvm/TargetParser/ARMTargetParser.h               | 1 +
 llvm/include/llvm/TargetParser/ARMTargetParserCommon.h         | 1 +
 llvm/include/llvm/TargetParser/CSKYTargetParser.h              | 1 +
 llvm/include/llvm/TargetParser/Host.h                          | 1 +
 llvm/include/llvm/TargetParser/LoongArchTargetParser.h         | 1 +
 llvm/include/llvm/TargetParser/RISCVTargetParser.h             | 1 +
 llvm/include/llvm/TargetParser/SubtargetFeature.h              | 1 +
 llvm/include/llvm/TargetParser/TargetParser.h                  | 1 +
 llvm/include/llvm/TargetParser/Triple.h                        | 1 +
 llvm/include/llvm/TargetParser/X86TargetParser.h               | 1 +
 llvm/include/llvm/Testing/Annotations/Annotations.h            | 1 +
 llvm/include/llvm/Testing/Support/Error.h                      | 1 +
 llvm/include/llvm/Testing/Support/SupportHelpers.h             | 1 +
 llvm/include/llvm/TextAPI/Architecture.h                       | 1 +
 llvm/include/llvm/TextAPI/ArchitectureSet.h                    | 1 +
 llvm/include/llvm/TextAPI/InterfaceFile.h                      | 1 +
 llvm/include/llvm/TextAPI/PackedVersion.h                      | 1 +
 llvm/include/llvm/TextAPI/Platform.h                           | 1 +
 llvm/include/llvm/TextAPI/Symbol.h                             | 1 +
 llvm/include/llvm/TextAPI/Target.h                             | 1 +
 llvm/include/llvm/TextAPI/TextAPIReader.h                      | 1 +
 llvm/include/llvm/TextAPI/TextAPIWriter.h                      | 2 ++
 llvm/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h     | 2 ++
 llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h             | 2 ++
 .../Transforms/AggressiveInstCombine/AggressiveInstCombine.h   | 1 +
 llvm/include/llvm/Transforms/CFGuard.h                         | 2 ++
 llvm/include/llvm/Transforms/Coroutines/CoroCleanup.h          | 1 +
 .../llvm/Transforms/Coroutines/CoroConditionalWrapper.h        | 1 +
 llvm/include/llvm/Transforms/Coroutines/CoroEarly.h            | 1 +
 llvm/include/llvm/Transforms/Coroutines/CoroElide.h            | 1 +
 llvm/include/llvm/Transforms/Coroutines/CoroSplit.h            | 1 +
 llvm/include/llvm/Transforms/IPO.h                             | 1 +
 llvm/include/llvm/Transforms/IPO/AlwaysInliner.h               | 1 +
 llvm/include/llvm/Transforms/IPO/Annotation2Metadata.h         | 1 +
 llvm/include/llvm/Transforms/IPO/ArgumentPromotion.h           | 1 +
 llvm/include/llvm/Transforms/IPO/Attributor.h                  | 1 +
 llvm/include/llvm/Transforms/IPO/BlockExtractor.h              | 1 +
 llvm/include/llvm/Transforms/IPO/CalledValuePropagation.h      | 1 +
 llvm/include/llvm/Transforms/IPO/ConstantMerge.h               | 1 +
 llvm/include/llvm/Transforms/IPO/CrossDSOCFI.h                 | 1 +
 llvm/include/llvm/Transforms/IPO/DeadArgumentElimination.h     | 1 +
 llvm/include/llvm/Transforms/IPO/ElimAvailExtern.h             | 1 +
 llvm/include/llvm/Transforms/IPO/EmbedBitcodePass.h            | 1 +
 llvm/include/llvm/Transforms/IPO/ExtractGV.h                   | 1 +
 llvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h          | 1 +
 llvm/include/llvm/Transforms/IPO/FunctionAttrs.h               | 1 +
 llvm/include/llvm/Transforms/IPO/FunctionImport.h              | 1 +
 llvm/include/llvm/Transforms/IPO/FunctionSpecialization.h      | 1 +
 llvm/include/llvm/Transforms/IPO/GlobalDCE.h                   | 1 +
 llvm/include/llvm/Transforms/IPO/GlobalOpt.h                   | 1 +
 llvm/include/llvm/Transforms/IPO/GlobalSplit.h                 | 1 +
 llvm/include/llvm/Transforms/IPO/HotColdSplitting.h            | 1 +
 llvm/include/llvm/Transforms/IPO/IROutliner.h                  | 1 +
 llvm/include/llvm/Transforms/IPO/InferFunctionAttrs.h          | 1 +
 llvm/include/llvm/Transforms/IPO/Inliner.h                     | 1 +
 llvm/include/llvm/Transforms/IPO/Internalize.h                 | 1 +
 llvm/include/llvm/Transforms/IPO/LoopExtractor.h               | 1 +
 llvm/include/llvm/Transforms/IPO/LowerTypeTests.h              | 1 +
 .../include/llvm/Transforms/IPO/MemProfContextDisambiguation.h | 1 +
 llvm/include/llvm/Transforms/IPO/MergeFunctions.h              | 1 +
 llvm/include/llvm/Transforms/IPO/ModuleInliner.h               | 1 +
 llvm/include/llvm/Transforms/IPO/OpenMPOpt.h                   | 1 +
 llvm/include/llvm/Transforms/IPO/PartialInlining.h             | 1 +
 llvm/include/llvm/Transforms/IPO/ProfiledCallGraph.h           | 1 +
 llvm/include/llvm/Transforms/IPO/SCCP.h                        | 1 +
 llvm/include/llvm/Transforms/IPO/SampleContextTracker.h        | 1 +
 llvm/include/llvm/Transforms/IPO/SampleProfileProbe.h          | 1 +
 llvm/include/llvm/Transforms/IPO/StripDeadPrototypes.h         | 1 +
 llvm/include/llvm/Transforms/IPO/StripSymbols.h                | 1 +
 llvm/include/llvm/Transforms/IPO/SyntheticCountsPropagation.h  | 1 +
 llvm/include/llvm/Transforms/IPO/ThinLTOBitcodeWriter.h        | 1 +
 llvm/include/llvm/Transforms/IPO/WholeProgramDevirt.h          | 1 +
 llvm/include/llvm/Transforms/InstCombine/InstCombine.h         | 1 +
 llvm/include/llvm/Transforms/Instrumentation.h                 | 1 +
 .../include/llvm/Transforms/Instrumentation/AddressSanitizer.h | 1 +
 .../llvm/Transforms/Instrumentation/AddressSanitizerCommon.h   | 1 +
 .../llvm/Transforms/Instrumentation/BlockCoverageInference.h   | 1 +
 llvm/include/llvm/Transforms/Instrumentation/BoundsChecking.h  | 1 +
 llvm/include/llvm/Transforms/Instrumentation/CFGMST.h          | 1 +
 llvm/include/llvm/Transforms/Instrumentation/CGProfile.h       | 1 +
 .../llvm/Transforms/Instrumentation/ControlHeightReduction.h   | 1 +
 .../llvm/Transforms/Instrumentation/DataFlowSanitizer.h        | 1 +
 llvm/include/llvm/Transforms/Instrumentation/GCOVProfiler.h    | 1 +
 .../llvm/Transforms/Instrumentation/HWAddressSanitizer.h       | 1 +
 llvm/include/llvm/Transforms/Instrumentation/InstrOrderFile.h  | 1 +
 llvm/include/llvm/Transforms/Instrumentation/InstrProfiling.h  | 1 +
 llvm/include/llvm/Transforms/Instrumentation/KCFI.h            | 1 +
 llvm/include/llvm/Transforms/Instrumentation/MemProfiler.h     | 1 +
 llvm/include/llvm/Transforms/Instrumentation/MemorySanitizer.h | 1 +
 .../llvm/Transforms/Instrumentation/PGOInstrumentation.h       | 1 +
 llvm/include/llvm/Transforms/Instrumentation/PoisonChecking.h  | 1 +
 .../llvm/Transforms/Instrumentation/SanitizerBinaryMetadata.h  | 1 +
 .../llvm/Transforms/Instrumentation/SanitizerCoverage.h        | 1 +
 llvm/include/llvm/Transforms/Instrumentation/ThreadSanitizer.h | 1 +
 llvm/include/llvm/Transforms/ObjCARC.h                         | 1 +
 llvm/include/llvm/Transforms/Scalar.h                          | 1 +
 llvm/include/llvm/Transforms/Scalar/ADCE.h                     | 1 +
 llvm/include/llvm/Transforms/Scalar/AlignmentFromAssumptions.h | 1 +
 llvm/include/llvm/Transforms/Scalar/AnnotationRemarks.h        | 1 +
 llvm/include/llvm/Transforms/Scalar/BDCE.h                     | 1 +
 llvm/include/llvm/Transforms/Scalar/CallSiteSplitting.h        | 1 +
 llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h         | 1 +
 llvm/include/llvm/Transforms/Scalar/ConstraintElimination.h    | 1 +
 .../llvm/Transforms/Scalar/CorrelatedValuePropagation.h        | 1 +
 llvm/include/llvm/Transforms/Scalar/DCE.h                      | 1 +
 llvm/include/llvm/Transforms/Scalar/DFAJumpThreading.h         | 1 +
 llvm/include/llvm/Transforms/Scalar/DeadStoreElimination.h     | 1 +
 llvm/include/llvm/Transforms/Scalar/DivRemPairs.h              | 1 +
 llvm/include/llvm/Transforms/Scalar/EarlyCSE.h                 | 1 +
 llvm/include/llvm/Transforms/Scalar/FlattenCFG.h               | 1 +
 llvm/include/llvm/Transforms/Scalar/Float2Int.h                | 1 +
 llvm/include/llvm/Transforms/Scalar/GuardWidening.h            | 1 +
 llvm/include/llvm/Transforms/Scalar/IVUsersPrinter.h           | 1 +
 llvm/include/llvm/Transforms/Scalar/IndVarSimplify.h           | 1 +
 .../llvm/Transforms/Scalar/InductiveRangeCheckElimination.h    | 1 +
 llvm/include/llvm/Transforms/Scalar/InferAddressSpaces.h       | 1 +
 llvm/include/llvm/Transforms/Scalar/InstSimplifyPass.h         | 1 +
 llvm/include/llvm/Transforms/Scalar/JumpThreading.h            | 1 +
 llvm/include/llvm/Transforms/Scalar/LICM.h                     | 1 +
 .../include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h | 1 +
 llvm/include/llvm/Transforms/Scalar/LoopBoundSplit.h           | 1 +
 llvm/include/llvm/Transforms/Scalar/LoopDataPrefetch.h         | 1 +
 llvm/include/llvm/Transforms/Scalar/LoopDeletion.h             | 1 +
 llvm/include/llvm/Transforms/Scalar/LoopDistribute.h           | 1 +
 llvm/include/llvm/Transforms/Scalar/LoopFlatten.h              | 1 +
 llvm/include/llvm/Transforms/Scalar/LoopFuse.h                 | 1 +
 llvm/include/llvm/Transforms/Scalar/LoopIdiomRecognize.h       | 1 +
 llvm/include/llvm/Transforms/Scalar/LoopInstSimplify.h         | 1 +
 llvm/include/llvm/Transforms/Scalar/LoopInterchange.h          | 1 +
 llvm/include/llvm/Transforms/Scalar/LoopLoadElimination.h      | 1 +
 llvm/include/llvm/Transforms/Scalar/LoopPassManager.h          | 1 +
 llvm/include/llvm/Transforms/Scalar/LoopPredication.h          | 1 +
 llvm/include/llvm/Transforms/Scalar/LoopReroll.h               | 1 +
 llvm/include/llvm/Transforms/Scalar/LoopRotation.h             | 1 +
 llvm/include/llvm/Transforms/Scalar/LoopSimplifyCFG.h          | 1 +
 llvm/include/llvm/Transforms/Scalar/LoopSink.h                 | 1 +
 llvm/include/llvm/Transforms/Scalar/LoopStrengthReduce.h       | 1 +
 llvm/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h     | 1 +
 llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h           | 1 +
 llvm/include/llvm/Transforms/Scalar/LoopVersioningLICM.h       | 1 +
 llvm/include/llvm/Transforms/Scalar/LowerAtomicPass.h          | 1 +
 llvm/include/llvm/Transforms/Scalar/LowerConstantIntrinsics.h  | 1 +
 llvm/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h     | 1 +
 llvm/include/llvm/Transforms/Scalar/LowerGuardIntrinsic.h      | 1 +
 llvm/include/llvm/Transforms/Scalar/LowerMatrixIntrinsics.h    | 1 +
 llvm/include/llvm/Transforms/Scalar/LowerWidenableCondition.h  | 1 +
 llvm/include/llvm/Transforms/Scalar/MakeGuardsExplicit.h       | 1 +
 llvm/include/llvm/Transforms/Scalar/MemCpyOptimizer.h          | 1 +
 llvm/include/llvm/Transforms/Scalar/MergeICmps.h               | 1 +
 llvm/include/llvm/Transforms/Scalar/MergedLoadStoreMotion.h    | 1 +
 llvm/include/llvm/Transforms/Scalar/NaryReassociate.h          | 1 +
 llvm/include/llvm/Transforms/Scalar/NewGVN.h                   | 1 +
 llvm/include/llvm/Transforms/Scalar/PartiallyInlineLibCalls.h  | 1 +
 llvm/include/llvm/Transforms/Scalar/PlaceSafepoints.h          | 1 +
 llvm/include/llvm/Transforms/Scalar/Reassociate.h              | 1 +
 llvm/include/llvm/Transforms/Scalar/Reg2Mem.h                  | 1 +
 llvm/include/llvm/Transforms/Scalar/RewriteStatepointsForGC.h  | 1 +
 llvm/include/llvm/Transforms/Scalar/SCCP.h                     | 1 +
 llvm/include/llvm/Transforms/Scalar/SROA.h                     | 1 +
 llvm/include/llvm/Transforms/Scalar/ScalarizeMaskedMemIntrin.h | 1 +
 llvm/include/llvm/Transforms/Scalar/Scalarizer.h               | 1 +
 .../llvm/Transforms/Scalar/SeparateConstOffsetFromGEP.h        | 1 +
 llvm/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h       | 1 +
 llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h              | 1 +
 llvm/include/llvm/Transforms/Scalar/Sink.h                     | 1 +
 llvm/include/llvm/Transforms/Scalar/SpeculativeExecution.h     | 1 +
 .../llvm/Transforms/Scalar/StraightLineStrengthReduce.h        | 1 +
 llvm/include/llvm/Transforms/Scalar/StructurizeCFG.h           | 1 +
 llvm/include/llvm/Transforms/Scalar/TLSVariableHoist.h         | 1 +
 llvm/include/llvm/Transforms/Scalar/TailRecursionElimination.h | 1 +
 llvm/include/llvm/Transforms/Scalar/WarnMissedTransforms.h     | 1 +
 llvm/include/llvm/Transforms/Utils.h                           | 2 ++
 llvm/include/llvm/Transforms/Utils/AMDGPUEmitPrintf.h          | 1 +
 llvm/include/llvm/Transforms/Utils/ASanStackFrameLayout.h      | 1 +
 llvm/include/llvm/Transforms/Utils/AddDiscriminators.h         | 1 +
 llvm/include/llvm/Transforms/Utils/AssumeBundleBuilder.h       | 1 +
 llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h           | 1 +
 llvm/include/llvm/Transforms/Utils/BreakCriticalEdges.h        | 1 +
 llvm/include/llvm/Transforms/Utils/BuildLibCalls.h             | 1 +
 llvm/include/llvm/Transforms/Utils/BypassSlowDivision.h        | 1 +
 llvm/include/llvm/Transforms/Utils/CallGraphUpdater.h          | 1 +
 llvm/include/llvm/Transforms/Utils/CallPromotionUtils.h        | 2 ++
 llvm/include/llvm/Transforms/Utils/CanonicalizeAliases.h       | 1 +
 llvm/include/llvm/Transforms/Utils/CanonicalizeFreezeInLoops.h | 1 +
 llvm/include/llvm/Transforms/Utils/Cloning.h                   | 1 +
 llvm/include/llvm/Transforms/Utils/CodeExtractor.h             | 1 +
 llvm/include/llvm/Transforms/Utils/CodeLayout.h                | 1 +
 llvm/include/llvm/Transforms/Utils/CodeMoverUtils.h            | 2 ++
 llvm/include/llvm/Transforms/Utils/CountVisits.h               | 1 +
 llvm/include/llvm/Transforms/Utils/CtorUtils.h                 | 1 +
 llvm/include/llvm/Transforms/Utils/Debugify.h                  | 1 +
 llvm/include/llvm/Transforms/Utils/EntryExitInstrumenter.h     | 1 +
 llvm/include/llvm/Transforms/Utils/EscapeEnumerator.h          | 1 +
 llvm/include/llvm/Transforms/Utils/Evaluator.h                 | 1 +
 llvm/include/llvm/Transforms/Utils/FixIrreducible.h            | 1 +
 llvm/include/llvm/Transforms/Utils/FunctionComparator.h        | 1 +
 llvm/include/llvm/Transforms/Utils/FunctionImportUtils.h       | 1 +
 llvm/include/llvm/Transforms/Utils/GlobalStatus.h              | 1 +
 llvm/include/llvm/Transforms/Utils/GuardUtils.h                | 2 ++
 llvm/include/llvm/Transforms/Utils/HelloWorld.h                | 1 +
 llvm/include/llvm/Transforms/Utils/InjectTLIMappings.h         | 1 +
 llvm/include/llvm/Transforms/Utils/InstructionNamer.h          | 1 +
 llvm/include/llvm/Transforms/Utils/IntegerDivision.h           | 2 ++
 llvm/include/llvm/Transforms/Utils/LCSSA.h                     | 1 +
 llvm/include/llvm/Transforms/Utils/LibCallsShrinkWrap.h        | 1 +
 llvm/include/llvm/Transforms/Utils/Local.h                     | 1 +
 llvm/include/llvm/Transforms/Utils/LoopPeel.h                  | 1 +
 llvm/include/llvm/Transforms/Utils/LoopRotationUtils.h         | 2 ++
 llvm/include/llvm/Transforms/Utils/LoopSimplify.h              | 1 +
 llvm/include/llvm/Transforms/Utils/LoopUtils.h                 | 1 +
 llvm/include/llvm/Transforms/Utils/LoopVersioning.h            | 1 +
 llvm/include/llvm/Transforms/Utils/LowerAtomic.h               | 1 +
 llvm/include/llvm/Transforms/Utils/LowerGlobalDtors.h          | 1 +
 llvm/include/llvm/Transforms/Utils/LowerIFunc.h                | 1 +
 llvm/include/llvm/Transforms/Utils/LowerInvoke.h               | 1 +
 llvm/include/llvm/Transforms/Utils/LowerMemIntrinsics.h        | 1 +
 llvm/include/llvm/Transforms/Utils/LowerSwitch.h               | 1 +
 llvm/include/llvm/Transforms/Utils/MatrixUtils.h               | 1 +
 llvm/include/llvm/Transforms/Utils/Mem2Reg.h                   | 1 +
 llvm/include/llvm/Transforms/Utils/MemoryOpRemark.h            | 1 +
 llvm/include/llvm/Transforms/Utils/MemoryTaggingSupport.h      | 1 +
 llvm/include/llvm/Transforms/Utils/MetaRenamer.h               | 1 +
 llvm/include/llvm/Transforms/Utils/MisExpect.h                 | 1 +
 llvm/include/llvm/Transforms/Utils/ModuleUtils.h               | 1 +
 llvm/include/llvm/Transforms/Utils/MoveAutoInit.h              | 1 +
 llvm/include/llvm/Transforms/Utils/NameAnonGlobals.h           | 1 +
 llvm/include/llvm/Transforms/Utils/PredicateInfo.h             | 1 +
 llvm/include/llvm/Transforms/Utils/PromoteMemToReg.h           | 2 ++
 llvm/include/llvm/Transforms/Utils/RelLookupTableConverter.h   | 1 +
 llvm/include/llvm/Transforms/Utils/SCCPSolver.h                | 1 +
 llvm/include/llvm/Transforms/Utils/SSAUpdater.h                | 1 +
 llvm/include/llvm/Transforms/Utils/SSAUpdaterBulk.h            | 1 +
 llvm/include/llvm/Transforms/Utils/SSAUpdaterImpl.h            | 1 +
 llvm/include/llvm/Transforms/Utils/SampleProfileInference.h    | 1 +
 .../llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h        | 1 +
 .../llvm/Transforms/Utils/SampleProfileLoaderBaseUtil.h        | 1 +
 llvm/include/llvm/Transforms/Utils/SanitizerStats.h            | 1 +
 llvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h   | 1 +
 llvm/include/llvm/Transforms/Utils/SimplifyCFGOptions.h        | 2 ++
 llvm/include/llvm/Transforms/Utils/SimplifyIndVar.h            | 2 ++
 llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h          | 1 +
 llvm/include/llvm/Transforms/Utils/SizeOpts.h                  | 1 +
 llvm/include/llvm/Transforms/Utils/SplitModule.h               | 1 +
 llvm/include/llvm/Transforms/Utils/StripGCRelocates.h          | 1 +
 .../include/llvm/Transforms/Utils/StripNonLineTableDebugInfo.h | 1 +
 llvm/include/llvm/Transforms/Utils/SymbolRewriter.h            | 1 +
 llvm/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h    | 1 +
 llvm/include/llvm/Transforms/Utils/UnifyLoopExits.h            | 1 +
 llvm/include/llvm/Transforms/Utils/UnrollLoop.h                | 1 +
 llvm/include/llvm/Transforms/Utils/VNCoercion.h                | 2 ++
 llvm/include/llvm/Transforms/Utils/ValueMapper.h               | 1 +
 llvm/include/llvm/Transforms/Vectorize/LoadStoreVectorizer.h   | 1 +
 .../llvm/Transforms/Vectorize/LoopVectorizationLegality.h      | 1 +
 llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h         | 1 +
 llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h         | 1 +
 llvm/include/llvm/Transforms/Vectorize/VectorCombine.h         | 1 +
 llvm/include/llvm/WindowsDriver/MSVCPaths.h                    | 1 +
 llvm/include/llvm/WindowsManifest/WindowsManifestMerger.h      | 1 +
 llvm/include/llvm/XRay/BlockIndexer.h                          | 1 +
 llvm/include/llvm/XRay/BlockPrinter.h                          | 1 +
 llvm/include/llvm/XRay/BlockVerifier.h                         | 1 +
 llvm/include/llvm/XRay/FDRRecordConsumer.h                     | 1 +
 llvm/include/llvm/XRay/FDRRecordProducer.h                     | 1 +
 llvm/include/llvm/XRay/FDRRecords.h                            | 1 +
 llvm/include/llvm/XRay/FDRTraceExpander.h                      | 1 +
 llvm/include/llvm/XRay/FDRTraceWriter.h                        | 1 +
 llvm/include/llvm/XRay/FileHeaderReader.h                      | 1 +
 llvm/include/llvm/XRay/InstrumentationMap.h                    | 1 +
 llvm/include/llvm/XRay/Profile.h                               | 1 +
 llvm/include/llvm/XRay/RecordPrinter.h                         | 1 +
 llvm/include/llvm/XRay/Trace.h                                 | 1 +
 llvm/include/llvm/XRay/XRayRecord.h                            | 1 +
 llvm/include/llvm/XRay/YAMLXRayRecord.h                        | 1 +
 1516 files changed, 1567 insertions(+)

diff --git a/llvm/include/llvm-c/Analysis.h b/llvm/include/llvm-c/Analysis.h
index 270b145a4d27e28..e515ef311aee3e5 100644
--- a/llvm/include/llvm-c/Analysis.h
+++ b/llvm/include/llvm-c/Analysis.h
@@ -19,6 +19,7 @@
 #ifndef LLVM_C_ANALYSIS_H
 #define LLVM_C_ANALYSIS_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm-c/ExternC.h"
 #include "llvm-c/Types.h"
 
diff --git a/llvm/include/llvm-c/BitReader.h b/llvm/include/llvm-c/BitReader.h
index 088107468d4fbc9..1a960118979a22c 100644
--- a/llvm/include/llvm-c/BitReader.h
+++ b/llvm/include/llvm-c/BitReader.h
@@ -19,6 +19,7 @@
 #ifndef LLVM_C_BITREADER_H
 #define LLVM_C_BITREADER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm-c/ExternC.h"
 #include "llvm-c/Types.h"
 
diff --git a/llvm/include/llvm-c/BitWriter.h b/llvm/include/llvm-c/BitWriter.h
index ea84b6593d12610..5baba8cbe7cf45c 100644
--- a/llvm/include/llvm-c/BitWriter.h
+++ b/llvm/include/llvm-c/BitWriter.h
@@ -19,6 +19,7 @@
 #ifndef LLVM_C_BITWRITER_H
 #define LLVM_C_BITWRITER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm-c/ExternC.h"
 #include "llvm-c/Types.h"
 
diff --git a/llvm/include/llvm-c/Comdat.h b/llvm/include/llvm-c/Comdat.h
index 8002bc0581af758..8ef628366cf36ed 100644
--- a/llvm/include/llvm-c/Comdat.h
+++ b/llvm/include/llvm-c/Comdat.h
@@ -16,6 +16,7 @@
 
 #include "llvm-c/ExternC.h"
 #include "llvm-c/Types.h"
+#include "llvm/Support/Compiler.h"
 
 LLVM_C_EXTERN_C_BEGIN
 
diff --git a/llvm/include/llvm-c/Core.h b/llvm/include/llvm-c/Core.h
index fbba8ca42a8c761..372830b09a855b2 100644
--- a/llvm/include/llvm-c/Core.h
+++ b/llvm/include/llvm-c/Core.h
@@ -15,6 +15,7 @@
 #ifndef LLVM_C_CORE_H
 #define LLVM_C_CORE_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm-c/Deprecated.h"
 #include "llvm-c/ErrorHandling.h"
 #include "llvm-c/ExternC.h"
diff --git a/llvm/include/llvm-c/DebugInfo.h b/llvm/include/llvm-c/DebugInfo.h
index 5924294708cc354..dc0e7432db6f969 100644
--- a/llvm/include/llvm-c/DebugInfo.h
+++ b/llvm/include/llvm-c/DebugInfo.h
@@ -16,6 +16,7 @@
 #ifndef LLVM_C_DEBUGINFO_H
 #define LLVM_C_DEBUGINFO_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm-c/ExternC.h"
 #include "llvm-c/Types.h"
 
diff --git a/llvm/include/llvm-c/Disassembler.h b/llvm/include/llvm-c/Disassembler.h
index b1cb35da6687a8f..8f832318f9d1676 100644
--- a/llvm/include/llvm-c/Disassembler.h
+++ b/llvm/include/llvm-c/Disassembler.h
@@ -15,6 +15,7 @@
 #ifndef LLVM_C_DISASSEMBLER_H
 #define LLVM_C_DISASSEMBLER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm-c/DisassemblerTypes.h"
 #include "llvm-c/ExternC.h"
 
diff --git a/llvm/include/llvm-c/DisassemblerTypes.h \
b/llvm/include/llvm-c/DisassemblerTypes.h index 6999a350ec918ea..06ebfec6c32ba0f \
                100644
--- a/llvm/include/llvm-c/DisassemblerTypes.h
+++ b/llvm/include/llvm-c/DisassemblerTypes.h
@@ -10,6 +10,7 @@
 #ifndef LLVM_C_DISASSEMBLERTYPES_H
 #define LLVM_C_DISASSEMBLERTYPES_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm-c/DataTypes.h"
 #ifdef __cplusplus
 #include <cstddef>
diff --git a/llvm/include/llvm-c/ExecutionEngine.h \
b/llvm/include/llvm-c/ExecutionEngine.h index c5fc9bdb4d07f62..ba8353b4796f16c 100644
--- a/llvm/include/llvm-c/ExecutionEngine.h
+++ b/llvm/include/llvm-c/ExecutionEngine.h
@@ -19,6 +19,7 @@
 #ifndef LLVM_C_EXECUTIONENGINE_H
 #define LLVM_C_EXECUTIONENGINE_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm-c/ExternC.h"
 #include "llvm-c/Target.h"
 #include "llvm-c/TargetMachine.h"
diff --git a/llvm/include/llvm-c/IRReader.h b/llvm/include/llvm-c/IRReader.h
index 905b84fa5a8693b..629dce589715728 100644
--- a/llvm/include/llvm-c/IRReader.h
+++ b/llvm/include/llvm-c/IRReader.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_C_IRREADER_H
 #define LLVM_C_IRREADER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm-c/ExternC.h"
 #include "llvm-c/Types.h"
 
diff --git a/llvm/include/llvm-c/LLJIT.h b/llvm/include/llvm-c/LLJIT.h
index a06133aac4fb063..961bf2daa909f11 100644
--- a/llvm/include/llvm-c/LLJIT.h
+++ b/llvm/include/llvm-c/LLJIT.h
@@ -24,6 +24,7 @@
 #ifndef LLVM_C_LLJIT_H
 #define LLVM_C_LLJIT_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm-c/Error.h"
 #include "llvm-c/Orc.h"
 #include "llvm-c/TargetMachine.h"
diff --git a/llvm/include/llvm-c/Linker.h b/llvm/include/llvm-c/Linker.h
index acff5d5e222531e..f13a5fbea67e16a 100644
--- a/llvm/include/llvm-c/Linker.h
+++ b/llvm/include/llvm-c/Linker.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_C_LINKER_H
 #define LLVM_C_LINKER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm-c/ExternC.h"
 #include "llvm-c/Types.h"
 
diff --git a/llvm/include/llvm-c/Object.h b/llvm/include/llvm-c/Object.h
index f422c1ad224d25e..709609df2460af8 100644
--- a/llvm/include/llvm-c/Object.h
+++ b/llvm/include/llvm-c/Object.h
@@ -19,6 +19,7 @@
 #ifndef LLVM_C_OBJECT_H
 #define LLVM_C_OBJECT_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm-c/ExternC.h"
 #include "llvm-c/Types.h"
 #include "llvm/Config/llvm-config.h"
diff --git a/llvm/include/llvm-c/Orc.h b/llvm/include/llvm-c/Orc.h
index 0dcfb06865aa883..488394c060fabca 100644
--- a/llvm/include/llvm-c/Orc.h
+++ b/llvm/include/llvm-c/Orc.h
@@ -27,6 +27,7 @@
 #ifndef LLVM_C_ORC_H
 #define LLVM_C_ORC_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm-c/Error.h"
 #include "llvm-c/TargetMachine.h"
 #include "llvm-c/Types.h"
diff --git a/llvm/include/llvm-c/OrcEE.h b/llvm/include/llvm-c/OrcEE.h
index d451187aaef59bb..1b7a8dbe2bb16a1 100644
--- a/llvm/include/llvm-c/OrcEE.h
+++ b/llvm/include/llvm-c/OrcEE.h
@@ -24,6 +24,7 @@
 #ifndef LLVM_C_ORCEE_H
 #define LLVM_C_ORCEE_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm-c/Error.h"
 #include "llvm-c/ExecutionEngine.h"
 #include "llvm-c/Orc.h"
diff --git a/llvm/include/llvm-c/Remarks.h b/llvm/include/llvm-c/Remarks.h
index ffe647a6554aabb..e19b604829f2714 100644
--- a/llvm/include/llvm-c/Remarks.h
+++ b/llvm/include/llvm-c/Remarks.h
@@ -15,6 +15,7 @@
 #ifndef LLVM_C_REMARKS_H
 #define LLVM_C_REMARKS_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm-c/ExternC.h"
 #include "llvm-c/Types.h"
 #ifdef __cplusplus
diff --git a/llvm/include/llvm-c/Support.h b/llvm/include/llvm-c/Support.h
index 17657861b32b929..41feb25f66b3115 100644
--- a/llvm/include/llvm-c/Support.h
+++ b/llvm/include/llvm-c/Support.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_C_SUPPORT_H
 #define LLVM_C_SUPPORT_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm-c/DataTypes.h"
 #include "llvm-c/ExternC.h"
 #include "llvm-c/Types.h"
diff --git a/llvm/include/llvm-c/Target.h b/llvm/include/llvm-c/Target.h
index 518b46d55bc3c9a..53baef1da485b65 100644
--- a/llvm/include/llvm-c/Target.h
+++ b/llvm/include/llvm-c/Target.h
@@ -19,6 +19,7 @@
 #ifndef LLVM_C_TARGET_H
 #define LLVM_C_TARGET_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm-c/ExternC.h"
 #include "llvm-c/Types.h"
 #include "llvm/Config/llvm-config.h"
diff --git a/llvm/include/llvm-c/TargetMachine.h \
b/llvm/include/llvm-c/TargetMachine.h index bfbe1421a3560a8..e92b896327464d0 100644
--- a/llvm/include/llvm-c/TargetMachine.h
+++ b/llvm/include/llvm-c/TargetMachine.h
@@ -19,6 +19,7 @@
 #ifndef LLVM_C_TARGETMACHINE_H
 #define LLVM_C_TARGETMACHINE_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm-c/ExternC.h"
 #include "llvm-c/Target.h"
 #include "llvm-c/Types.h"
diff --git a/llvm/include/llvm-c/Transforms/PassBuilder.h \
b/llvm/include/llvm-c/Transforms/PassBuilder.h index d0466dd7fc0a127..b6055c25c5f1151 \
                100644
--- a/llvm/include/llvm-c/Transforms/PassBuilder.h
+++ b/llvm/include/llvm-c/Transforms/PassBuilder.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_C_TRANSFORMS_PASSBUILDER_H
 #define LLVM_C_TRANSFORMS_PASSBUILDER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm-c/Error.h"
 #include "llvm-c/TargetMachine.h"
 #include "llvm-c/Types.h"
diff --git a/llvm/include/llvm-c/blake3.h b/llvm/include/llvm-c/blake3.h
index 679477c3aa7f08c..f4a98b4218f8855 100644
--- a/llvm/include/llvm-c/blake3.h
+++ b/llvm/include/llvm-c/blake3.h
@@ -17,6 +17,7 @@
 #ifndef LLVM_C_BLAKE3_H
 #define LLVM_C_BLAKE3_H
 
+#include "llvm/Support/Compiler.h"
 #include <stddef.h>
 #include <stdint.h>
 
diff --git a/llvm/include/llvm-c/lto.h b/llvm/include/llvm-c/lto.h
index 5ceb02224d2bba5..087a6bd09a80e2f 100644
--- a/llvm/include/llvm-c/lto.h
+++ b/llvm/include/llvm-c/lto.h
@@ -16,6 +16,7 @@
 #ifndef LLVM_C_LTO_H
 #define LLVM_C_LTO_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm-c/ExternC.h"
 
 #ifdef __cplusplus
diff --git a/llvm/include/llvm/ADT/APFixedPoint.h \
b/llvm/include/llvm/ADT/APFixedPoint.h index 5442968d20e4af7..22a08633a856b5e 100644
--- a/llvm/include/llvm/ADT/APFixedPoint.h
+++ b/llvm/include/llvm/ADT/APFixedPoint.h
@@ -20,6 +20,7 @@
 #include "llvm/ADT/DenseMapInfo.h"
 #include "llvm/ADT/Hashing.h"
 #include "llvm/ADT/SmallString.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/ADT/APFloat.h b/llvm/include/llvm/ADT/APFloat.h
index 3961a001b8810ca..f97cd5d050185b0 100644
--- a/llvm/include/llvm/ADT/APFloat.h
+++ b/llvm/include/llvm/ADT/APFloat.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/APInt.h"
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/FloatingPointMode.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <memory>
 
diff --git a/llvm/include/llvm/ADT/APSInt.h b/llvm/include/llvm/ADT/APSInt.h
index 90b988875a24dc0..a7201cdcb708805 100644
--- a/llvm/include/llvm/ADT/APSInt.h
+++ b/llvm/include/llvm/ADT/APSInt.h
@@ -16,6 +16,7 @@
 #define LLVM_ADT_APSINT_H
 
 #include "llvm/ADT/APInt.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/ADT/AddressRanges.h \
b/llvm/include/llvm/ADT/AddressRanges.h index 415d30bbb5cf9b8..3990870cc13a265 100644
--- a/llvm/include/llvm/ADT/AddressRanges.h
+++ b/llvm/include/llvm/ADT/AddressRanges.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <optional>
 #include <stdint.h>
diff --git a/llvm/include/llvm/ADT/AllocatorList.h \
b/llvm/include/llvm/ADT/AllocatorList.h index 04d0afc9d076e6a..dee561a55b00470 100644
--- a/llvm/include/llvm/ADT/AllocatorList.h
+++ b/llvm/include/llvm/ADT/AllocatorList.h
@@ -13,6 +13,7 @@
 #include "llvm/ADT/iterator.h"
 #include "llvm/ADT/simple_ilist.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 #include <iterator>
diff --git a/llvm/include/llvm/ADT/BitVector.h b/llvm/include/llvm/ADT/BitVector.h
index a8847a326753781..dbe1847abacc2df 100644
--- a/llvm/include/llvm/ADT/BitVector.h
+++ b/llvm/include/llvm/ADT/BitVector.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/DenseMapInfo.h"
 #include "llvm/ADT/iterator_range.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MathExtras.h"
 #include <algorithm>
 #include <cassert>
diff --git a/llvm/include/llvm/ADT/Bitfields.h b/llvm/include/llvm/ADT/Bitfields.h
index 4064d716f8a7742..6e14208448f484b 100644
--- a/llvm/include/llvm/ADT/Bitfields.h
+++ b/llvm/include/llvm/ADT/Bitfields.h
@@ -79,6 +79,7 @@
 #ifndef LLVM_ADT_BITFIELDS_H
 #define LLVM_ADT_BITFIELDS_H
 
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <climits> // CHAR_BIT
 #include <cstddef> // size_t
diff --git a/llvm/include/llvm/ADT/BitmaskEnum.h \
b/llvm/include/llvm/ADT/BitmaskEnum.h index 976fddde725f0cd..4080e67e05dcc51 100644
--- a/llvm/include/llvm/ADT/BitmaskEnum.h
+++ b/llvm/include/llvm/ADT/BitmaskEnum.h
@@ -13,6 +13,7 @@
 #include <type_traits>
 #include <utility>
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MathExtras.h"
 
 /// LLVM_MARK_AS_BITMASK_ENUM lets you opt in an individual enum type so you can
diff --git a/llvm/include/llvm/ADT/BreadthFirstIterator.h \
b/llvm/include/llvm/ADT/BreadthFirstIterator.h index 29e96693c4d1ae3..cebaf9eec709a7c \
                100644
--- a/llvm/include/llvm/ADT/BreadthFirstIterator.h
+++ b/llvm/include/llvm/ADT/BreadthFirstIterator.h
@@ -21,6 +21,7 @@
 #include "llvm/ADT/GraphTraits.h"
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/ADT/iterator_range.h"
+#include "llvm/Support/Compiler.h"
 #include <iterator>
 #include <optional>
 #include <queue>
diff --git a/llvm/include/llvm/ADT/CachedHashString.h \
b/llvm/include/llvm/ADT/CachedHashString.h index ebd40e3207156af..ea44cb0cb8784e1 \
                100644
--- a/llvm/include/llvm/ADT/CachedHashString.h
+++ b/llvm/include/llvm/ADT/CachedHashString.h
@@ -22,6 +22,7 @@
 
 #include "llvm/ADT/DenseMapInfo.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/ADT/CoalescingBitVector.h \
b/llvm/include/llvm/ADT/CoalescingBitVector.h index 4940bc1c2c18b2f..0cf1eda9a9259ae \
                100644
--- a/llvm/include/llvm/ADT/CoalescingBitVector.h
+++ b/llvm/include/llvm/ADT/CoalescingBitVector.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/iterator_range.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/raw_ostream.h"
 
diff --git a/llvm/include/llvm/ADT/ConcurrentHashtable.h \
b/llvm/include/llvm/ADT/ConcurrentHashtable.h index 438159d5c736b1b..858479ffe47486f \
                100644
--- a/llvm/include/llvm/ADT/ConcurrentHashtable.h
+++ b/llvm/include/llvm/ADT/ConcurrentHashtable.h
@@ -15,6 +15,7 @@
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/Parallel.h"
 #include "llvm/Support/WithColor.h"
diff --git a/llvm/include/llvm/ADT/DenseSet.h b/llvm/include/llvm/ADT/DenseSet.h
index b89c88626e43bb5..bd08a419bb7323c 100644
--- a/llvm/include/llvm/ADT/DenseSet.h
+++ b/llvm/include/llvm/ADT/DenseSet.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/DenseMapInfo.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MathExtras.h"
 #include "llvm/Support/type_traits.h"
 #include <cstddef>
diff --git a/llvm/include/llvm/ADT/DepthFirstIterator.h \
b/llvm/include/llvm/ADT/DepthFirstIterator.h index 71053c2d0d8a8ec..4f93c91576d38d1 \
                100644
--- a/llvm/include/llvm/ADT/DepthFirstIterator.h
+++ b/llvm/include/llvm/ADT/DepthFirstIterator.h
@@ -37,6 +37,7 @@
 #include "llvm/ADT/GraphTraits.h"
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/ADT/iterator_range.h"
+#include "llvm/Support/Compiler.h"
 #include <iterator>
 #include <optional>
 #include <utility>
diff --git a/llvm/include/llvm/ADT/DirectedGraph.h \
b/llvm/include/llvm/ADT/DirectedGraph.h index 83c0bea6393c4d6..dd012b8b5df8069 100644
--- a/llvm/include/llvm/ADT/DirectedGraph.h
+++ b/llvm/include/llvm/ADT/DirectedGraph.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/GraphTraits.h"
 #include "llvm/ADT/SetVector.h"
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/raw_ostream.h"
 
diff --git a/llvm/include/llvm/ADT/EnumeratedArray.h \
b/llvm/include/llvm/ADT/EnumeratedArray.h index fd0700c8e408a05..47921d079e29b6d \
                100644
--- a/llvm/include/llvm/ADT/EnumeratedArray.h
+++ b/llvm/include/llvm/ADT/EnumeratedArray.h
@@ -15,6 +15,7 @@
 #ifndef LLVM_ADT_ENUMERATEDARRAY_H
 #define LLVM_ADT_ENUMERATEDARRAY_H
 
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <iterator>
 
diff --git a/llvm/include/llvm/ADT/EpochTracker.h \
b/llvm/include/llvm/ADT/EpochTracker.h index fc41d6f2c92d2f9..5efb46f70339816 100644
--- a/llvm/include/llvm/ADT/EpochTracker.h
+++ b/llvm/include/llvm/ADT/EpochTracker.h
@@ -17,6 +17,7 @@
 #define LLVM_ADT_EPOCHTRACKER_H
 
 #include "llvm/Config/abi-breaking.h"
+#include "llvm/Support/Compiler.h"
 
 #include <cstdint>
 
diff --git a/llvm/include/llvm/ADT/EquivalenceClasses.h \
b/llvm/include/llvm/ADT/EquivalenceClasses.h index 4f98b84cf97d24f..4feda9cb4784f72 \
                100644
--- a/llvm/include/llvm/ADT/EquivalenceClasses.h
+++ b/llvm/include/llvm/ADT/EquivalenceClasses.h
@@ -15,6 +15,7 @@
 #ifndef LLVM_ADT_EQUIVALENCECLASSES_H
 #define LLVM_ADT_EQUIVALENCECLASSES_H
 
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 #include <cstdint>
diff --git a/llvm/include/llvm/ADT/FloatingPointMode.h \
b/llvm/include/llvm/ADT/FloatingPointMode.h index 61e57094fdbb98c..3e94054daa663e8 \
                100644
--- a/llvm/include/llvm/ADT/FloatingPointMode.h
+++ b/llvm/include/llvm/ADT/FloatingPointMode.h
@@ -17,6 +17,7 @@
 
 #include "llvm/ADT/BitmaskEnum.h"
 #include "llvm/ADT/StringSwitch.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/ADT/FoldingSet.h b/llvm/include/llvm/ADT/FoldingSet.h
index 237668921cbb273..7a5dc8ca3e67f8d 100644
--- a/llvm/include/llvm/ADT/FoldingSet.h
+++ b/llvm/include/llvm/ADT/FoldingSet.h
@@ -20,6 +20,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/iterator.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 #include <cstdint>
diff --git a/llvm/include/llvm/ADT/FunctionExtras.h \
b/llvm/include/llvm/ADT/FunctionExtras.h index 53de2cb74253a68..5635fcc7d61dc75 \
                100644
--- a/llvm/include/llvm/ADT/FunctionExtras.h
+++ b/llvm/include/llvm/ADT/FunctionExtras.h
@@ -35,6 +35,7 @@
 #include "llvm/ADT/PointerIntPair.h"
 #include "llvm/ADT/PointerUnion.h"
 #include "llvm/ADT/STLForwardCompat.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MemAlloc.h"
 #include "llvm/Support/type_traits.h"
 #include <cstring>
diff --git a/llvm/include/llvm/ADT/GenericCycleImpl.h \
b/llvm/include/llvm/ADT/GenericCycleImpl.h index e1362d8597b2af0..8003ff7275b72a7 \
                100644
--- a/llvm/include/llvm/ADT/GenericCycleImpl.h
+++ b/llvm/include/llvm/ADT/GenericCycleImpl.h
@@ -26,6 +26,7 @@
 #include "llvm/ADT/DenseSet.h"
 #include "llvm/ADT/DepthFirstIterator.h"
 #include "llvm/ADT/GenericCycleInfo.h"
+#include "llvm/Support/Compiler.h"
 
 #define DEBUG_TYPE "generic-cycle-impl"
 
diff --git a/llvm/include/llvm/ADT/GenericCycleInfo.h \
b/llvm/include/llvm/ADT/GenericCycleInfo.h index 7df50f4a0ec1721..70185b5024766d8 \
                100644
--- a/llvm/include/llvm/ADT/GenericCycleInfo.h
+++ b/llvm/include/llvm/ADT/GenericCycleInfo.h
@@ -32,6 +32,7 @@
 #include "llvm/ADT/GenericSSAContext.h"
 #include "llvm/ADT/GraphTraits.h"
 #include "llvm/ADT/SetVector.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/raw_ostream.h"
 
diff --git a/llvm/include/llvm/ADT/GenericSSAContext.h \
b/llvm/include/llvm/ADT/GenericSSAContext.h index 40b2be7c34c316d..36565973b20ef87 \
                100644
--- a/llvm/include/llvm/ADT/GenericSSAContext.h
+++ b/llvm/include/llvm/ADT/GenericSSAContext.h
@@ -17,6 +17,7 @@
 #ifndef LLVM_ADT_GENERICSSACONTEXT_H
 #define LLVM_ADT_GENERICSSACONTEXT_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Printable.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/ADT/GenericUniformityImpl.h \
b/llvm/include/llvm/ADT/GenericUniformityImpl.h index \
                4df04accc6835d8..ba15c38c1c18fc8 100644
--- a/llvm/include/llvm/ADT/GenericUniformityImpl.h
+++ b/llvm/include/llvm/ADT/GenericUniformityImpl.h
@@ -43,6 +43,7 @@
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/ADT/SparseBitVector.h"
 #include "llvm/ADT/StringExtras.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 
 #include <set>
diff --git a/llvm/include/llvm/ADT/GenericUniformityInfo.h \
b/llvm/include/llvm/ADT/GenericUniformityInfo.h index \
                114fdfed765c21f..5b90fb78bb0bd2c 100644
--- a/llvm/include/llvm/ADT/GenericUniformityInfo.h
+++ b/llvm/include/llvm/ADT/GenericUniformityInfo.h
@@ -10,6 +10,7 @@
 #define LLVM_ADT_GENERICUNIFORMITYINFO_H
 
 #include "llvm/ADT/GenericCycleInfo.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/ADT/GraphTraits.h \
b/llvm/include/llvm/ADT/GraphTraits.h index 3a7773592af3d4d..8c131d60dde220a 100644
--- a/llvm/include/llvm/ADT/GraphTraits.h
+++ b/llvm/include/llvm/ADT/GraphTraits.h
@@ -20,6 +20,7 @@
 #define LLVM_ADT_GRAPHTRAITS_H
 
 #include "llvm/ADT/iterator_range.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/ADT/Hashing.h b/llvm/include/llvm/ADT/Hashing.h
index ef983105c7bae67..b0ff47f4c6c89a6 100644
--- a/llvm/include/llvm/ADT/Hashing.h
+++ b/llvm/include/llvm/ADT/Hashing.h
@@ -44,6 +44,7 @@
 #ifndef LLVM_ADT_HASHING_H
 #define LLVM_ADT_HASHING_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/SwapByteOrder.h"
diff --git a/llvm/include/llvm/ADT/IndexedMap.h b/llvm/include/llvm/ADT/IndexedMap.h
index 5ac5f798269b9bf..cc09a1c5713bd77 100644
--- a/llvm/include/llvm/ADT/IndexedMap.h
+++ b/llvm/include/llvm/ADT/IndexedMap.h
@@ -22,6 +22,7 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/STLExtras.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 
 namespace llvm {
diff --git a/llvm/include/llvm/ADT/IntEqClasses.h \
b/llvm/include/llvm/ADT/IntEqClasses.h index 9ee8a46be411eeb..82faef8436b1b82 100644
--- a/llvm/include/llvm/ADT/IntEqClasses.h
+++ b/llvm/include/llvm/ADT/IntEqClasses.h
@@ -22,6 +22,7 @@
 #define LLVM_ADT_INTEQCLASSES_H
 
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/ADT/IntervalMap.h \
b/llvm/include/llvm/ADT/IntervalMap.h index c68d816a8e7d751..fb24b59e8f4d15d 100644
--- a/llvm/include/llvm/ADT/IntervalMap.h
+++ b/llvm/include/llvm/ADT/IntervalMap.h
@@ -107,6 +107,7 @@
 #include "llvm/ADT/PointerIntPair.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/RecyclingAllocator.h"
 #include <algorithm>
 #include <cassert>
diff --git a/llvm/include/llvm/ADT/IntervalTree.h \
b/llvm/include/llvm/ADT/IntervalTree.h index cb707bd77a64d99..5c040098a46abd2 100644
--- a/llvm/include/llvm/ADT/IntervalTree.h
+++ b/llvm/include/llvm/ADT/IntervalTree.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/SmallSet.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Format.h"
 #include "llvm/Support/raw_ostream.h"
 #include <algorithm>
diff --git a/llvm/include/llvm/ADT/MapVector.h b/llvm/include/llvm/ADT/MapVector.h
index a129b63f8be7a70..09f881341e3849c 100644
--- a/llvm/include/llvm/ADT/MapVector.h
+++ b/llvm/include/llvm/ADT/MapVector.h
@@ -19,6 +19,7 @@
 
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 #include <iterator>
diff --git a/llvm/include/llvm/ADT/PointerEmbeddedInt.h \
b/llvm/include/llvm/ADT/PointerEmbeddedInt.h index fbc48af79da1ea1..3bdefa24747567e \
                100644
--- a/llvm/include/llvm/ADT/PointerEmbeddedInt.h
+++ b/llvm/include/llvm/ADT/PointerEmbeddedInt.h
@@ -10,6 +10,7 @@
 #define LLVM_ADT_POINTEREMBEDDEDINT_H
 
 #include "llvm/ADT/DenseMapInfo.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MathExtras.h"
 #include "llvm/Support/PointerLikeTypeTraits.h"
 #include <cassert>
diff --git a/llvm/include/llvm/ADT/PointerSumType.h \
b/llvm/include/llvm/ADT/PointerSumType.h index 57f045035a7847f..43226d41843b796 \
                100644
--- a/llvm/include/llvm/ADT/PointerSumType.h
+++ b/llvm/include/llvm/ADT/PointerSumType.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/bit.h"
 #include "llvm/ADT/DenseMapInfo.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/PointerLikeTypeTraits.h"
 #include <cassert>
 #include <cstdint>
diff --git a/llvm/include/llvm/ADT/PointerUnion.h \
b/llvm/include/llvm/ADT/PointerUnion.h index 7d4ed02b622626b..63aa0e350387d83 100644
--- a/llvm/include/llvm/ADT/PointerUnion.h
+++ b/llvm/include/llvm/ADT/PointerUnion.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/PointerIntPair.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/PointerLikeTypeTraits.h"
 #include <algorithm>
 #include <cassert>
diff --git a/llvm/include/llvm/ADT/PostOrderIterator.h \
b/llvm/include/llvm/ADT/PostOrderIterator.h index 33d3330a40bd3f9..abc0510b046c675 \
                100644
--- a/llvm/include/llvm/ADT/PostOrderIterator.h
+++ b/llvm/include/llvm/ADT/PostOrderIterator.h
@@ -20,6 +20,7 @@
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/iterator_range.h"
+#include "llvm/Support/Compiler.h"
 #include <iterator>
 #include <optional>
 #include <set>
diff --git a/llvm/include/llvm/ADT/PriorityQueue.h \
b/llvm/include/llvm/ADT/PriorityQueue.h index f40c160f0f5e60b..7738a48b8c55237 100644
--- a/llvm/include/llvm/ADT/PriorityQueue.h
+++ b/llvm/include/llvm/ADT/PriorityQueue.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_ADT_PRIORITYQUEUE_H
 #define LLVM_ADT_PRIORITYQUEUE_H
 
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <queue>
 
diff --git a/llvm/include/llvm/ADT/SCCIterator.h \
b/llvm/include/llvm/ADT/SCCIterator.h index e743ae7c11edbc0..b3012448bda5a92 100644
--- a/llvm/include/llvm/ADT/SCCIterator.h
+++ b/llvm/include/llvm/ADT/SCCIterator.h
@@ -26,6 +26,7 @@
 #include "llvm/ADT/DenseSet.h"
 #include "llvm/ADT/GraphTraits.h"
 #include "llvm/ADT/iterator.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 #include <iterator>
diff --git a/llvm/include/llvm/ADT/STLExtras.h b/llvm/include/llvm/ADT/STLExtras.h
index 7edc582636c772e..d5cf0f3df334349 100644
--- a/llvm/include/llvm/ADT/STLExtras.h
+++ b/llvm/include/llvm/ADT/STLExtras.h
@@ -25,6 +25,7 @@
 #include "llvm/ADT/iterator.h"
 #include "llvm/ADT/iterator_range.h"
 #include "llvm/Config/abi-breaking.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <algorithm>
 #include <cassert>
diff --git a/llvm/include/llvm/ADT/ScopedHashTable.h \
b/llvm/include/llvm/ADT/ScopedHashTable.h index 78d4df7d5684520..78fadaf629048a7 \
                100644
--- a/llvm/include/llvm/ADT/ScopedHashTable.h
+++ b/llvm/include/llvm/ADT/ScopedHashTable.h
@@ -33,6 +33,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/DenseMapInfo.h"
 #include "llvm/Support/AllocatorBase.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <new>
 
diff --git a/llvm/include/llvm/ADT/Sequence.h b/llvm/include/llvm/ADT/Sequence.h
index ddda9a95a7bc652..fb9ef13d0d71160 100644
--- a/llvm/include/llvm/ADT/Sequence.h
+++ b/llvm/include/llvm/ADT/Sequence.h
@@ -86,6 +86,7 @@
 #include <type_traits> // std::is_integral, std::is_enum, std::underlying_type,
                        // std::enable_if
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MathExtras.h" // AddOverflow / SubOverflow
 
 namespace llvm {
diff --git a/llvm/include/llvm/ADT/SmallBitVector.h \
b/llvm/include/llvm/ADT/SmallBitVector.h index c538a4d4023b280..3bb300eaac27b38 \
                100644
--- a/llvm/include/llvm/ADT/SmallBitVector.h
+++ b/llvm/include/llvm/ADT/SmallBitVector.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/BitVector.h"
 #include "llvm/ADT/iterator_range.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MathExtras.h"
 #include <algorithm>
 #include <cassert>
diff --git a/llvm/include/llvm/ADT/SmallString.h \
b/llvm/include/llvm/ADT/SmallString.h index 0052c86fb37b82d..5d63a780d0c6902 100644
--- a/llvm/include/llvm/ADT/SmallString.h
+++ b/llvm/include/llvm/ADT/SmallString.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <cstddef>
 
 namespace llvm {
diff --git a/llvm/include/llvm/ADT/SparseBitVector.h \
b/llvm/include/llvm/ADT/SparseBitVector.h index 1e00c1386187510..89aa64db20ac94e \
                100644
--- a/llvm/include/llvm/ADT/SparseBitVector.h
+++ b/llvm/include/llvm/ADT/SparseBitVector.h
@@ -15,6 +15,7 @@
 #ifndef LLVM_ADT_SPARSEBITVECTOR_H
 #define LLVM_ADT_SPARSEBITVECTOR_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/MathExtras.h"
 #include "llvm/Support/raw_ostream.h"
diff --git a/llvm/include/llvm/ADT/SparseMultiSet.h \
b/llvm/include/llvm/ADT/SparseMultiSet.h index d8dbe4023ea6479..453697b5f1ac6e4 \
                100644
--- a/llvm/include/llvm/ADT/SparseMultiSet.h
+++ b/llvm/include/llvm/ADT/SparseMultiSet.h
@@ -24,6 +24,7 @@
 #include "llvm/ADT/identity.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/SparseSet.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 #include <cstdlib>
diff --git a/llvm/include/llvm/ADT/SparseSet.h b/llvm/include/llvm/ADT/SparseSet.h
index 4a999e6b4c69a6d..591525c05551c13 100644
--- a/llvm/include/llvm/ADT/SparseSet.h
+++ b/llvm/include/llvm/ADT/SparseSet.h
@@ -23,6 +23,7 @@
 #include "llvm/ADT/identity.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/Support/AllocatorBase.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 #include <cstdlib>
diff --git a/llvm/include/llvm/ADT/StringExtras.h \
b/llvm/include/llvm/ADT/StringExtras.h index eec010e893228db..1e7f05bc3be86c0 100644
--- a/llvm/include/llvm/ADT/StringExtras.h
+++ b/llvm/include/llvm/ADT/StringExtras.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/SmallString.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/Twine.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 #include <cstdint>
diff --git a/llvm/include/llvm/ADT/StringMap.h b/llvm/include/llvm/ADT/StringMap.h
index 466f95254d102e9..caa37792a1271d9 100644
--- a/llvm/include/llvm/ADT/StringMap.h
+++ b/llvm/include/llvm/ADT/StringMap.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/StringMapEntry.h"
 #include "llvm/ADT/iterator.h"
 #include "llvm/Support/AllocatorBase.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/PointerLikeTypeTraits.h"
 #include <initializer_list>
 #include <iterator>
diff --git a/llvm/include/llvm/ADT/StringMapEntry.h \
b/llvm/include/llvm/ADT/StringMapEntry.h index 98b51cc1aebd59e..393beceeca7da75 \
                100644
--- a/llvm/include/llvm/ADT/StringMapEntry.h
+++ b/llvm/include/llvm/ADT/StringMapEntry.h
@@ -17,6 +17,7 @@
 #define LLVM_ADT_STRINGMAPENTRY_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/ADT/StringSet.h b/llvm/include/llvm/ADT/StringSet.h
index d7b63bc9c96852e..0dc9c2358bdd606 100644
--- a/llvm/include/llvm/ADT/StringSet.h
+++ b/llvm/include/llvm/ADT/StringSet.h
@@ -15,6 +15,7 @@
 #define LLVM_ADT_STRINGSET_H
 
 #include "llvm/ADT/StringMap.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/ADT/TinyPtrVector.h \
b/llvm/include/llvm/ADT/TinyPtrVector.h index fa2bcd8933a0a2d..8309a06ab0a0d4d 100644
--- a/llvm/include/llvm/ADT/TinyPtrVector.h
+++ b/llvm/include/llvm/ADT/TinyPtrVector.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/PointerUnion.h"
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 #include <iterator>
diff --git a/llvm/include/llvm/ADT/Twine.h b/llvm/include/llvm/ADT/Twine.h
index ecd9d6df60ac613..547af57cad81423 100644
--- a/llvm/include/llvm/ADT/Twine.h
+++ b/llvm/include/llvm/ADT/Twine.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <cassert>
 #include <cstdint>
diff --git a/llvm/include/llvm/ADT/UniqueVector.h \
b/llvm/include/llvm/ADT/UniqueVector.h index bfea988f1702703..d1f36d6fde06256 100644
--- a/llvm/include/llvm/ADT/UniqueVector.h
+++ b/llvm/include/llvm/ADT/UniqueVector.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_ADT_UNIQUEVECTOR_H
 #define LLVM_ADT_UNIQUEVECTOR_H
 
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 #include <map>
diff --git a/llvm/include/llvm/ADT/fallible_iterator.h \
b/llvm/include/llvm/ADT/fallible_iterator.h index b42f62b67fd665d..d24b8644ae26bfd \
                100644
--- a/llvm/include/llvm/ADT/fallible_iterator.h
+++ b/llvm/include/llvm/ADT/fallible_iterator.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/PointerIntPair.h"
 #include "llvm/ADT/iterator_range.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 #include <type_traits>
diff --git a/llvm/include/llvm/ADT/ilist.h b/llvm/include/llvm/ADT/ilist.h
index aed19ccbff7f2de..d9adae6038a13ed 100644
--- a/llvm/include/llvm/ADT/ilist.h
+++ b/llvm/include/llvm/ADT/ilist.h
@@ -25,6 +25,7 @@
 #define LLVM_ADT_ILIST_H
 
 #include "llvm/ADT/simple_ilist.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 #include <iterator>
diff --git a/llvm/include/llvm/ADT/ilist_base.h b/llvm/include/llvm/ADT/ilist_base.h
index b8c098b951aded7..32e676b2779a897 100644
--- a/llvm/include/llvm/ADT/ilist_base.h
+++ b/llvm/include/llvm/ADT/ilist_base.h
@@ -10,6 +10,7 @@
 #define LLVM_ADT_ILIST_BASE_H
 
 #include "llvm/ADT/ilist_node_base.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 
 namespace llvm {
diff --git a/llvm/include/llvm/ADT/ilist_iterator.h \
b/llvm/include/llvm/ADT/ilist_iterator.h index be876347907bb2b..ad428241e4aa214 \
                100644
--- a/llvm/include/llvm/ADT/ilist_iterator.h
+++ b/llvm/include/llvm/ADT/ilist_iterator.h
@@ -10,6 +10,7 @@
 #define LLVM_ADT_ILIST_ITERATOR_H
 
 #include "llvm/ADT/ilist_node.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 #include <iterator>
diff --git a/llvm/include/llvm/ADT/ilist_node.h b/llvm/include/llvm/ADT/ilist_node.h
index 7856b1c0d410e2c..f8af8fca6e7ef98 100644
--- a/llvm/include/llvm/ADT/ilist_node.h
+++ b/llvm/include/llvm/ADT/ilist_node.h
@@ -17,6 +17,7 @@
 
 #include "llvm/ADT/ilist_node_base.h"
 #include "llvm/ADT/ilist_node_options.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/ADT/ilist_node_base.h \
b/llvm/include/llvm/ADT/ilist_node_base.h index f6c518e6eed7a17..04d6ede9c6a69a4 \
                100644
--- a/llvm/include/llvm/ADT/ilist_node_base.h
+++ b/llvm/include/llvm/ADT/ilist_node_base.h
@@ -10,6 +10,7 @@
 #define LLVM_ADT_ILIST_NODE_BASE_H
 
 #include "llvm/ADT/PointerIntPair.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/ADT/ilist_node_options.h \
b/llvm/include/llvm/ADT/ilist_node_options.h index 05340d344e39988..e07cbcfd7bb83e0 \
                100644
--- a/llvm/include/llvm/ADT/ilist_node_options.h
+++ b/llvm/include/llvm/ADT/ilist_node_options.h
@@ -10,6 +10,7 @@
 #define LLVM_ADT_ILIST_NODE_OPTIONS_H
 
 #include "llvm/Config/abi-breaking.h"
+#include "llvm/Support/Compiler.h"
 
 #include <type_traits>
 
diff --git a/llvm/include/llvm/ADT/iterator.h b/llvm/include/llvm/ADT/iterator.h
index 6f0c42fe08bec07..23065ea71cedad6 100644
--- a/llvm/include/llvm/ADT/iterator.h
+++ b/llvm/include/llvm/ADT/iterator.h
@@ -10,6 +10,7 @@
 #define LLVM_ADT_ITERATOR_H
 
 #include "llvm/ADT/iterator_range.h"
+#include "llvm/Support/Compiler.h"
 #include <cstddef>
 #include <iterator>
 #include <type_traits>
diff --git a/llvm/include/llvm/Analysis/AliasAnalysis.h \
b/llvm/include/llvm/Analysis/AliasAnalysis.h index 8da8d516499aa4e..bf57e200cae7d2a \
                100644
--- a/llvm/include/llvm/Analysis/AliasAnalysis.h
+++ b/llvm/include/llvm/Analysis/AliasAnalysis.h
@@ -43,6 +43,7 @@
 #include "llvm/Analysis/MemoryLocation.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ModRef.h"
 #include <cstdint>
 #include <functional>
diff --git a/llvm/include/llvm/Analysis/AliasAnalysisEvaluator.h \
b/llvm/include/llvm/Analysis/AliasAnalysisEvaluator.h index \
                113115b871448b2..e12f90a66631efa 100644
--- a/llvm/include/llvm/Analysis/AliasAnalysisEvaluator.h
+++ b/llvm/include/llvm/Analysis/AliasAnalysisEvaluator.h
@@ -25,6 +25,7 @@
 #define LLVM_ANALYSIS_ALIASANALYSISEVALUATOR_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class AAResults;
diff --git a/llvm/include/llvm/Analysis/AliasSetTracker.h \
b/llvm/include/llvm/Analysis/AliasSetTracker.h index e485e1ff2f4c987..400c573634e0086 \
                100644
--- a/llvm/include/llvm/Analysis/AliasSetTracker.h
+++ b/llvm/include/llvm/Analysis/AliasSetTracker.h
@@ -26,6 +26,7 @@
 #include "llvm/IR/Instruction.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/IR/ValueHandle.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 #include <iterator>
diff --git a/llvm/include/llvm/Analysis/AssumeBundleQueries.h \
b/llvm/include/llvm/Analysis/AssumeBundleQueries.h index \
                b3f499faa14edc2..a7cc4c72605ae55 100644
--- a/llvm/include/llvm/Analysis/AssumeBundleQueries.h
+++ b/llvm/include/llvm/Analysis/AssumeBundleQueries.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/IR/IntrinsicInst.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class AssumptionCache;
diff --git a/llvm/include/llvm/Analysis/AssumptionCache.h \
b/llvm/include/llvm/Analysis/AssumptionCache.h index 12dd9b04c93231b..982b2927a5b7e8b \
                100644
--- a/llvm/include/llvm/Analysis/AssumptionCache.h
+++ b/llvm/include/llvm/Analysis/AssumptionCache.h
@@ -22,6 +22,7 @@
 #include "llvm/IR/PassManager.h"
 #include "llvm/IR/ValueHandle.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/BasicAliasAnalysis.h \
b/llvm/include/llvm/Analysis/BasicAliasAnalysis.h index \
                ca67e0905c5f6ad..df4b5e533734de7 100644
--- a/llvm/include/llvm/Analysis/BasicAliasAnalysis.h
+++ b/llvm/include/llvm/Analysis/BasicAliasAnalysis.h
@@ -17,6 +17,7 @@
 #include "llvm/Analysis/AliasAnalysis.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 #include <optional>
 #include <utility>
diff --git a/llvm/include/llvm/Analysis/BlockFrequencyInfo.h \
b/llvm/include/llvm/Analysis/BlockFrequencyInfo.h index \
                39507570a1b2c3f..1ce36da169ff697 100644
--- a/llvm/include/llvm/Analysis/BlockFrequencyInfo.h
+++ b/llvm/include/llvm/Analysis/BlockFrequencyInfo.h
@@ -16,6 +16,7 @@
 #include "llvm/IR/PassManager.h"
 #include "llvm/Pass.h"
 #include "llvm/Support/BlockFrequency.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <memory>
 #include <optional>
diff --git a/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h \
b/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h index \
                9d96748874a04b8..6517c0c5d2e23fc 100644
--- a/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
+++ b/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
@@ -30,6 +30,7 @@
 #include "llvm/Support/BlockFrequency.h"
 #include "llvm/Support/BranchProbability.h"
 #include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DOTGraphTraits.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/Format.h"
diff --git a/llvm/include/llvm/Analysis/BranchProbabilityInfo.h \
b/llvm/include/llvm/Analysis/BranchProbabilityInfo.h index \
                fb02997371bfb87..a47fa7411558448 100644
--- a/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
+++ b/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
@@ -22,6 +22,7 @@
 #include "llvm/IR/ValueHandle.h"
 #include "llvm/Pass.h"
 #include "llvm/Support/BranchProbability.h"
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <cassert>
 #include <cstdint>
diff --git a/llvm/include/llvm/Analysis/CFG.h b/llvm/include/llvm/Analysis/CFG.h
index 86b01c13274fec8..3974abaadb8cb1e 100644
--- a/llvm/include/llvm/Analysis/CFG.h
+++ b/llvm/include/llvm/Analysis/CFG.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/GraphTraits.h"
 #include "llvm/ADT/SmallPtrSet.h"
+#include "llvm/Support/Compiler.h"
 #include <utility>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/CFGPrinter.h \
b/llvm/include/llvm/Analysis/CFGPrinter.h index 8c4c0c3f182f21f..7eded147e4201b7 \
                100644
--- a/llvm/include/llvm/Analysis/CFGPrinter.h
+++ b/llvm/include/llvm/Analysis/CFGPrinter.h
@@ -27,6 +27,7 @@
 #include "llvm/IR/Instructions.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/IR/ProfDataUtils.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DOTGraphTraits.h"
 #include "llvm/Support/FormatVariadic.h"
 
diff --git a/llvm/include/llvm/Analysis/CFGSCCPrinter.h \
b/llvm/include/llvm/Analysis/CFGSCCPrinter.h index d98071461f57876..58fe717b58b9711 \
                100644
--- a/llvm/include/llvm/Analysis/CFGSCCPrinter.h
+++ b/llvm/include/llvm/Analysis/CFGSCCPrinter.h
@@ -10,6 +10,7 @@
 #define LLVM_ANALYSIS_CFGSCCPRINTER_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/CGSCCPassManager.h \
b/llvm/include/llvm/Analysis/CGSCCPassManager.h index \
                0264b36a1d12ff3..026d48d0130e650 100644
--- a/llvm/include/llvm/Analysis/CGSCCPassManager.h
+++ b/llvm/include/llvm/Analysis/CGSCCPassManager.h
@@ -92,6 +92,7 @@
 #include "llvm/Analysis/LazyCallGraph.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/IR/ValueHandle.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 #include <cassert>
 #include <utility>
diff --git a/llvm/include/llvm/Analysis/CallGraph.h \
b/llvm/include/llvm/Analysis/CallGraph.h index 9413b39978e3fb3..542df9c7fda98a6 \
                100644
--- a/llvm/include/llvm/Analysis/CallGraph.h
+++ b/llvm/include/llvm/Analysis/CallGraph.h
@@ -49,6 +49,7 @@
 #include "llvm/IR/Intrinsics.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/IR/ValueHandle.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Pass.h"
 #include <cassert>
 #include <map>
diff --git a/llvm/include/llvm/Analysis/CallGraphSCCPass.h \
b/llvm/include/llvm/Analysis/CallGraphSCCPass.h index \
                d0d81605436ea18..962ff4526afd1ae 100644
--- a/llvm/include/llvm/Analysis/CallGraphSCCPass.h
+++ b/llvm/include/llvm/Analysis/CallGraphSCCPass.h
@@ -22,6 +22,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <vector>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/CallPrinter.h \
b/llvm/include/llvm/Analysis/CallPrinter.h index d325d0010371745..d8211fd6d182b43 \
                100644
--- a/llvm/include/llvm/Analysis/CallPrinter.h
+++ b/llvm/include/llvm/Analysis/CallPrinter.h
@@ -15,6 +15,7 @@
 #define LLVM_ANALYSIS_CALLPRINTER_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/CaptureTracking.h \
b/llvm/include/llvm/Analysis/CaptureTracking.h index a2d9277745e42f5..4dd952219020986 \
                100644
--- a/llvm/include/llvm/Analysis/CaptureTracking.h
+++ b/llvm/include/llvm/Analysis/CaptureTracking.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/STLFunctionalExtras.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/CmpInstAnalysis.h \
b/llvm/include/llvm/Analysis/CmpInstAnalysis.h index 1d07a0c22887bbb..7ed53cd1ef61284 \
                100644
--- a/llvm/include/llvm/Analysis/CmpInstAnalysis.h
+++ b/llvm/include/llvm/Analysis/CmpInstAnalysis.h
@@ -15,6 +15,7 @@
 #define LLVM_ANALYSIS_CMPINSTANALYSIS_H
 
 #include "llvm/IR/InstrTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
   class Type;
diff --git a/llvm/include/llvm/Analysis/CodeMetrics.h \
b/llvm/include/llvm/Analysis/CodeMetrics.h index a9431bca11251a6..c078fee4c523b5f \
                100644
--- a/llvm/include/llvm/Analysis/CodeMetrics.h
+++ b/llvm/include/llvm/Analysis/CodeMetrics.h
@@ -15,6 +15,7 @@
 #define LLVM_ANALYSIS_CODEMETRICS_H
 
 #include "llvm/ADT/DenseMap.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/InstructionCost.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/ConstantFolding.h \
b/llvm/include/llvm/Analysis/ConstantFolding.h index b11981c609ce1f5..3a105ce925faa88 \
                100644
--- a/llvm/include/llvm/Analysis/ConstantFolding.h
+++ b/llvm/include/llvm/Analysis/ConstantFolding.h
@@ -19,6 +19,7 @@
 #ifndef LLVM_ANALYSIS_CONSTANTFOLDING_H
 #define LLVM_ANALYSIS_CONSTANTFOLDING_H
 
+#include "llvm/Support/Compiler.h"
 #include <stdint.h>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/ConstraintSystem.h \
b/llvm/include/llvm/Analysis/ConstraintSystem.h index \
                5d3bc64bf8b4b28..8d7101b29f9f28d 100644
--- a/llvm/include/llvm/Analysis/ConstraintSystem.h
+++ b/llvm/include/llvm/Analysis/ConstraintSystem.h
@@ -13,6 +13,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MathExtras.h"
 
 #include <string>
diff --git a/llvm/include/llvm/Analysis/CostModel.h \
b/llvm/include/llvm/Analysis/CostModel.h index 649168050cec678..063a0337a6c2295 \
                100644
--- a/llvm/include/llvm/Analysis/CostModel.h
+++ b/llvm/include/llvm/Analysis/CostModel.h
@@ -10,6 +10,7 @@
 #define LLVM_ANALYSIS_COSTMODEL_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 /// Printer pass for cost modeling results.
diff --git a/llvm/include/llvm/Analysis/CycleAnalysis.h \
b/llvm/include/llvm/Analysis/CycleAnalysis.h index 30bf6856b69b0d3..f84861ceec87877 \
                100644
--- a/llvm/include/llvm/Analysis/CycleAnalysis.h
+++ b/llvm/include/llvm/Analysis/CycleAnalysis.h
@@ -19,6 +19,7 @@
 #include "llvm/IR/PassManager.h"
 #include "llvm/IR/SSAContext.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 extern template class GenericCycleInfo<SSAContext>;
diff --git a/llvm/include/llvm/Analysis/DDG.h b/llvm/include/llvm/Analysis/DDG.h
index bc599cb1f9a1545..45eae9363789556 100644
--- a/llvm/include/llvm/Analysis/DDG.h
+++ b/llvm/include/llvm/Analysis/DDG.h
@@ -18,6 +18,7 @@
 #include "llvm/Analysis/DependenceAnalysis.h"
 #include "llvm/Analysis/DependenceGraphBuilder.h"
 #include "llvm/Analysis/LoopAnalysisManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Function;
diff --git a/llvm/include/llvm/Analysis/DDGPrinter.h \
b/llvm/include/llvm/Analysis/DDGPrinter.h index d93c28280bac3b1..6fd11d0570d7a2b \
                100644
--- a/llvm/include/llvm/Analysis/DDGPrinter.h
+++ b/llvm/include/llvm/Analysis/DDGPrinter.h
@@ -16,6 +16,7 @@
 #define LLVM_ANALYSIS_DDGPRINTER_H
 
 #include "llvm/Analysis/DDG.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DOTGraphTraits.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/DOTGraphTraitsPass.h \
b/llvm/include/llvm/Analysis/DOTGraphTraitsPass.h index \
                07c08bc1cc3bcb6..cae56e6685872e3 100644
--- a/llvm/include/llvm/Analysis/DOTGraphTraitsPass.h
+++ b/llvm/include/llvm/Analysis/DOTGraphTraitsPass.h
@@ -14,6 +14,7 @@
 #define LLVM_ANALYSIS_DOTGRAPHTRAITSPASS_H
 
 #include "llvm/Analysis/CFGPrinter.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/GraphWriter.h"
 
diff --git a/llvm/include/llvm/Analysis/Delinearization.h \
b/llvm/include/llvm/Analysis/Delinearization.h index 95a36b8b79a4bf0..a20a4742097bfeb \
                100644
--- a/llvm/include/llvm/Analysis/Delinearization.h
+++ b/llvm/include/llvm/Analysis/Delinearization.h
@@ -17,6 +17,7 @@
 #define LLVM_ANALYSIS_DELINEARIZATION_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class raw_ostream;
diff --git a/llvm/include/llvm/Analysis/DemandedBits.h \
b/llvm/include/llvm/Analysis/DemandedBits.h index d7709b7423784af..133aed5bf4aa08d \
                100644
--- a/llvm/include/llvm/Analysis/DemandedBits.h
+++ b/llvm/include/llvm/Analysis/DemandedBits.h
@@ -25,6 +25,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/DependenceAnalysis.h \
b/llvm/include/llvm/Analysis/DependenceAnalysis.h index \
                327315f831e11ba..d06b19ab64542b2 100644
--- a/llvm/include/llvm/Analysis/DependenceAnalysis.h
+++ b/llvm/include/llvm/Analysis/DependenceAnalysis.h
@@ -43,6 +43,7 @@
 #include "llvm/IR/Instructions.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
   class AAResults;
diff --git a/llvm/include/llvm/Analysis/DependenceGraphBuilder.h \
b/llvm/include/llvm/Analysis/DependenceGraphBuilder.h index \
                f490f20e7c19aa9..5f9657aa63caef9 100644
--- a/llvm/include/llvm/Analysis/DependenceGraphBuilder.h
+++ b/llvm/include/llvm/Analysis/DependenceGraphBuilder.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/EquivalenceClasses.h"
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/DomPrinter.h \
b/llvm/include/llvm/Analysis/DomPrinter.h index 83fe721346ab2ed..7d44da544e8b429 \
                100644
--- a/llvm/include/llvm/Analysis/DomPrinter.h
+++ b/llvm/include/llvm/Analysis/DomPrinter.h
@@ -18,6 +18,7 @@
 #include "llvm/Analysis/PostDominators.h"
 #include "llvm/IR/Dominators.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/DominanceFrontier.h \
b/llvm/include/llvm/Analysis/DominanceFrontier.h index \
                cef5e03b3b7a7c7..ea7a367deaa5db2 100644
--- a/llvm/include/llvm/Analysis/DominanceFrontier.h
+++ b/llvm/include/llvm/Analysis/DominanceFrontier.h
@@ -21,6 +21,7 @@
 #include "llvm/Config/llvm-config.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/GenericDomTree.h"
 #include <cassert>
 #include <map>
diff --git a/llvm/include/llvm/Analysis/DominanceFrontierImpl.h \
b/llvm/include/llvm/Analysis/DominanceFrontierImpl.h index \
                7a5f8f31bae392d..95ce0736eca952c 100644
--- a/llvm/include/llvm/Analysis/DominanceFrontierImpl.h
+++ b/llvm/include/llvm/Analysis/DominanceFrontierImpl.h
@@ -20,6 +20,7 @@
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/Analysis/DominanceFrontier.h"
 #include "llvm/Config/llvm-config.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/GenericDomTree.h"
 #include "llvm/Support/raw_ostream.h"
diff --git a/llvm/include/llvm/Analysis/FunctionPropertiesAnalysis.h \
b/llvm/include/llvm/Analysis/FunctionPropertiesAnalysis.h index \
                85d98a05bbd7c18..fa2dd51e1c84284 100644
--- a/llvm/include/llvm/Analysis/FunctionPropertiesAnalysis.h
+++ b/llvm/include/llvm/Analysis/FunctionPropertiesAnalysis.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/iterator_range.h"
 #include "llvm/IR/InstrTypes.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class DominatorTree;
diff --git a/llvm/include/llvm/Analysis/GlobalsModRef.h \
b/llvm/include/llvm/Analysis/GlobalsModRef.h index ab8ab8295b556c1..865fd2f9ebeedf5 \
                100644
--- a/llvm/include/llvm/Analysis/GlobalsModRef.h
+++ b/llvm/include/llvm/Analysis/GlobalsModRef.h
@@ -17,6 +17,7 @@
 #include "llvm/IR/PassManager.h"
 #include "llvm/IR/ValueHandle.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <list>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/GuardUtils.h \
b/llvm/include/llvm/Analysis/GuardUtils.h index b83211535ec2341..589cc5f3082bb00 \
                100644
--- a/llvm/include/llvm/Analysis/GuardUtils.h
+++ b/llvm/include/llvm/Analysis/GuardUtils.h
@@ -12,6 +12,8 @@
 #ifndef LLVM_ANALYSIS_GUARDUTILS_H
 #define LLVM_ANALYSIS_GUARDUTILS_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 
 class BasicBlock;
diff --git a/llvm/include/llvm/Analysis/HeatUtils.h \
b/llvm/include/llvm/Analysis/HeatUtils.h index 9ecbbaf318da9cd..2fbc99d4f01ba46 \
                100644
--- a/llvm/include/llvm/Analysis/HeatUtils.h
+++ b/llvm/include/llvm/Analysis/HeatUtils.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_ANALYSIS_HEATUTILS_H
 #define LLVM_ANALYSIS_HEATUTILS_H
 
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <string>
 
diff --git a/llvm/include/llvm/Analysis/IRSimilarityIdentifier.h \
b/llvm/include/llvm/Analysis/IRSimilarityIdentifier.h index \
                ad137baff5d4289..bef9da329fe1947 100644
--- a/llvm/include/llvm/Analysis/IRSimilarityIdentifier.h
+++ b/llvm/include/llvm/Analysis/IRSimilarityIdentifier.h
@@ -54,6 +54,7 @@
 #include "llvm/IR/PassManager.h"
 #include "llvm/Pass.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/IVDescriptors.h \
b/llvm/include/llvm/Analysis/IVDescriptors.h index 42826cd4e660a36..4324f413e8b00af \
                100644
--- a/llvm/include/llvm/Analysis/IVDescriptors.h
+++ b/llvm/include/llvm/Analysis/IVDescriptors.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/IR/IntrinsicInst.h"
 #include "llvm/IR/ValueHandle.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/IVUsers.h \
b/llvm/include/llvm/Analysis/IVUsers.h index 6b9b6bf190f1c8d..e7098b74094b326 100644
--- a/llvm/include/llvm/Analysis/IVUsers.h
+++ b/llvm/include/llvm/Analysis/IVUsers.h
@@ -18,6 +18,7 @@
 #include "llvm/Analysis/LoopPass.h"
 #include "llvm/Analysis/ScalarEvolutionNormalization.h"
 #include "llvm/IR/ValueHandle.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/IndirectCallPromotionAnalysis.h \
b/llvm/include/llvm/Analysis/IndirectCallPromotionAnalysis.h index \
                8a05e913a91063b..3124d3872a53fda 100644
--- a/llvm/include/llvm/Analysis/IndirectCallPromotionAnalysis.h
+++ b/llvm/include/llvm/Analysis/IndirectCallPromotionAnalysis.h
@@ -14,6 +14,7 @@
 #define LLVM_ANALYSIS_INDIRECTCALLPROMOTIONANALYSIS_H
 
 #include "llvm/ProfileData/InstrProf.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/IndirectCallVisitor.h \
b/llvm/include/llvm/Analysis/IndirectCallVisitor.h index \
                0825e19ecd2d240..d23d95f7dc69b9f 100644
--- a/llvm/include/llvm/Analysis/IndirectCallVisitor.h
+++ b/llvm/include/llvm/Analysis/IndirectCallVisitor.h
@@ -13,6 +13,7 @@
 #define LLVM_ANALYSIS_INDIRECTCALLVISITOR_H
 
 #include "llvm/IR/InstVisitor.h"
+#include "llvm/Support/Compiler.h"
 #include <vector>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/InlineAdvisor.h \
b/llvm/include/llvm/Analysis/InlineAdvisor.h index 53c018d15cd71a6..c705d7afb2219bf \
                100644
--- a/llvm/include/llvm/Analysis/InlineAdvisor.h
+++ b/llvm/include/llvm/Analysis/InlineAdvisor.h
@@ -14,6 +14,7 @@
 #include "llvm/Analysis/LazyCallGraph.h"
 #include "llvm/Config/llvm-config.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/InlineCost.h \
b/llvm/include/llvm/Analysis/InlineCost.h index 57f452853d2d6d6..d309a58b2a6fa1d \
                100644
--- a/llvm/include/llvm/Analysis/InlineCost.h
+++ b/llvm/include/llvm/Analysis/InlineCost.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/STLFunctionalExtras.h"
 #include "llvm/Analysis/InlineModelFeatureMaps.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <climits>
 #include <optional>
diff --git a/llvm/include/llvm/Analysis/InlineOrder.h \
b/llvm/include/llvm/Analysis/InlineOrder.h index a1d25a25b8568f7..ed3971b5013b76c \
                100644
--- a/llvm/include/llvm/Analysis/InlineOrder.h
+++ b/llvm/include/llvm/Analysis/InlineOrder.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/STLFunctionalExtras.h"
 #include "llvm/Analysis/InlineCost.h"
+#include "llvm/Support/Compiler.h"
 #include <utility>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/InlineSizeEstimatorAnalysis.h \
b/llvm/include/llvm/Analysis/InlineSizeEstimatorAnalysis.h index \
                0aae696a98a928a..4981ae646bfc5f3 100644
--- a/llvm/include/llvm/Analysis/InlineSizeEstimatorAnalysis.h
+++ b/llvm/include/llvm/Analysis/InlineSizeEstimatorAnalysis.h
@@ -11,6 +11,7 @@
 #define LLVM_ANALYSIS_INLINESIZEESTIMATORANALYSIS_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Function;
diff --git a/llvm/include/llvm/Analysis/InstCount.h \
b/llvm/include/llvm/Analysis/InstCount.h index e5ce822caf6efaa..44cb9228f4be7fe \
                100644
--- a/llvm/include/llvm/Analysis/InstCount.h
+++ b/llvm/include/llvm/Analysis/InstCount.h
@@ -14,6 +14,7 @@
 #define LLVM_ANALYSIS_INSTCOUNT_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/InstSimplifyFolder.h \
b/llvm/include/llvm/Analysis/InstSimplifyFolder.h index \
                16bd9f76542124f..f3d9d3cc13d33dd 100644
--- a/llvm/include/llvm/Analysis/InstSimplifyFolder.h
+++ b/llvm/include/llvm/Analysis/InstSimplifyFolder.h
@@ -24,6 +24,7 @@
 #include "llvm/Analysis/TargetFolder.h"
 #include "llvm/IR/IRBuilderFolder.h"
 #include "llvm/IR/Instruction.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Constant;
diff --git a/llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h \
b/llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h index \
                192630e62a54cf3..f42e8799eba6c36 100644
--- a/llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h
+++ b/llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h
@@ -21,6 +21,7 @@
 #define LLVM_ANALYSIS_INSTRUCTIONPRECEDENCETRACKING_H
 
 #include "llvm/ADT/DenseMap.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/InstructionSimplify.h \
b/llvm/include/llvm/Analysis/InstructionSimplify.h index \
                df0784664eadc86..aa33fb1a6e2de3e 100644
--- a/llvm/include/llvm/Analysis/InstructionSimplify.h
+++ b/llvm/include/llvm/Analysis/InstructionSimplify.h
@@ -32,6 +32,7 @@
 #define LLVM_ANALYSIS_INSTRUCTIONSIMPLIFY_H
 
 #include "llvm/IR/PatternMatch.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/InteractiveModelRunner.h \
b/llvm/include/llvm/Analysis/InteractiveModelRunner.h index \
                680dc4249d80b17..71346d188fd126c 100644
--- a/llvm/include/llvm/Analysis/InteractiveModelRunner.h
+++ b/llvm/include/llvm/Analysis/InteractiveModelRunner.h
@@ -14,6 +14,7 @@
 #include "llvm/Analysis/TensorSpec.h"
 #include "llvm/Analysis/Utils/TrainingLogger.h"
 #include "llvm/Config/llvm-config.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/raw_ostream.h"
 #include <system_error>
diff --git a/llvm/include/llvm/Analysis/Interval.h \
b/llvm/include/llvm/Analysis/Interval.h index 9afe659d00dd3dd..9cfcd32f949fdc8 100644
--- a/llvm/include/llvm/Analysis/Interval.h
+++ b/llvm/include/llvm/Analysis/Interval.h
@@ -20,6 +20,7 @@
 #define LLVM_ANALYSIS_INTERVAL_H
 
 #include "llvm/ADT/GraphTraits.h"
+#include "llvm/Support/Compiler.h"
 #include <vector>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/IntervalIterator.h \
b/llvm/include/llvm/Analysis/IntervalIterator.h index \
                cbb7cac1c508c57..4ce3c28f4fa6c55 100644
--- a/llvm/include/llvm/Analysis/IntervalIterator.h
+++ b/llvm/include/llvm/Analysis/IntervalIterator.h
@@ -36,6 +36,7 @@
 #include "llvm/Analysis/Interval.h"
 #include "llvm/Analysis/IntervalPartition.h"
 #include "llvm/IR/CFG.h"
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <cassert>
 #include <iterator>
diff --git a/llvm/include/llvm/Analysis/IntervalPartition.h \
b/llvm/include/llvm/Analysis/IntervalPartition.h index \
                66a99fb15bfb9fd..16bdfb945dc6f9d 100644
--- a/llvm/include/llvm/Analysis/IntervalPartition.h
+++ b/llvm/include/llvm/Analysis/IntervalPartition.h
@@ -23,6 +23,7 @@
 #define LLVM_ANALYSIS_INTERVALPARTITION_H
 
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <map>
 #include <vector>
 
diff --git a/llvm/include/llvm/Analysis/IteratedDominanceFrontier.h \
b/llvm/include/llvm/Analysis/IteratedDominanceFrontier.h index \
                542a741ee07ee16..a313bdf87654eba 100644
--- a/llvm/include/llvm/Analysis/IteratedDominanceFrontier.h
+++ b/llvm/include/llvm/Analysis/IteratedDominanceFrontier.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_ANALYSIS_ITERATEDDOMINANCEFRONTIER_H
 #define LLVM_ANALYSIS_ITERATEDDOMINANCEFRONTIER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/CFGDiff.h"
 #include "llvm/Support/GenericIteratedDominanceFrontier.h"
 
diff --git a/llvm/include/llvm/Analysis/LazyBlockFrequencyInfo.h \
b/llvm/include/llvm/Analysis/LazyBlockFrequencyInfo.h index \
                a6d8b76b12aea24..86cba8a54bea7b9 100644
--- a/llvm/include/llvm/Analysis/LazyBlockFrequencyInfo.h
+++ b/llvm/include/llvm/Analysis/LazyBlockFrequencyInfo.h
@@ -18,6 +18,7 @@
 
 #include "llvm/Analysis/BlockFrequencyInfo.h"
 #include "llvm/Analysis/LazyBranchProbabilityInfo.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Pass.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/LazyBranchProbabilityInfo.h \
b/llvm/include/llvm/Analysis/LazyBranchProbabilityInfo.h index \
                bad7423616b453b..4083389dbcf6cd1 100644
--- a/llvm/include/llvm/Analysis/LazyBranchProbabilityInfo.h
+++ b/llvm/include/llvm/Analysis/LazyBranchProbabilityInfo.h
@@ -17,6 +17,7 @@
 #define LLVM_ANALYSIS_LAZYBRANCHPROBABILITYINFO_H
 
 #include "llvm/Analysis/BranchProbabilityInfo.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Pass.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/LazyCallGraph.h \
b/llvm/include/llvm/Analysis/LazyCallGraph.h index 211a058aa0173d6..a51b169547d057c \
                100644
--- a/llvm/include/llvm/Analysis/LazyCallGraph.h
+++ b/llvm/include/llvm/Analysis/LazyCallGraph.h
@@ -45,6 +45,7 @@
 #include "llvm/Analysis/TargetLibraryInfo.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 #include <cassert>
 #include <iterator>
diff --git a/llvm/include/llvm/Analysis/LazyValueInfo.h \
b/llvm/include/llvm/Analysis/LazyValueInfo.h index b109b7f7e65ae7c..6125b26f8be0728 \
                100644
--- a/llvm/include/llvm/Analysis/LazyValueInfo.h
+++ b/llvm/include/llvm/Analysis/LazyValueInfo.h
@@ -16,6 +16,7 @@
 
 #include "llvm/IR/PassManager.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
   class AssumptionCache;
diff --git a/llvm/include/llvm/Analysis/Lint.h b/llvm/include/llvm/Analysis/Lint.h
index 8dffa1ecb5f388f..bd26851ed9a77c3 100644
--- a/llvm/include/llvm/Analysis/Lint.h
+++ b/llvm/include/llvm/Analysis/Lint.h
@@ -19,6 +19,7 @@
 #define LLVM_ANALYSIS_LINT_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/Loads.h b/llvm/include/llvm/Analysis/Loads.h
index 2880ed33a34cbc6..8520ca0afc3a76d 100644
--- a/llvm/include/llvm/Analysis/Loads.h
+++ b/llvm/include/llvm/Analysis/Loads.h
@@ -15,6 +15,7 @@
 
 #include "llvm/IR/BasicBlock.h"
 #include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/LoopAccessAnalysis.h \
b/llvm/include/llvm/Analysis/LoopAccessAnalysis.h index \
                2b3092aa6614c5f..6694724273e18f5 100644
--- a/llvm/include/llvm/Analysis/LoopAccessAnalysis.h
+++ b/llvm/include/llvm/Analysis/LoopAccessAnalysis.h
@@ -19,6 +19,7 @@
 #include "llvm/Analysis/ScalarEvolutionExpressions.h"
 #include "llvm/IR/DiagnosticInfo.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/LoopAnalysisManager.h \
b/llvm/include/llvm/Analysis/LoopAnalysisManager.h index \
                d22675a308aac75..a039e9143a2510c 100644
--- a/llvm/include/llvm/Analysis/LoopAnalysisManager.h
+++ b/llvm/include/llvm/Analysis/LoopAnalysisManager.h
@@ -30,6 +30,7 @@
 #define LLVM_ANALYSIS_LOOPANALYSISMANAGER_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/LoopCacheAnalysis.h \
b/llvm/include/llvm/Analysis/LoopCacheAnalysis.h index \
                c9e853b9be8e69b..b2a7c6808f98d9c 100644
--- a/llvm/include/llvm/Analysis/LoopCacheAnalysis.h
+++ b/llvm/include/llvm/Analysis/LoopCacheAnalysis.h
@@ -16,6 +16,7 @@
 
 #include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/LoopInfo.h \
b/llvm/include/llvm/Analysis/LoopInfo.h index 3434630c27cfe74..52ed6bea3ea40ba 100644
--- a/llvm/include/llvm/Analysis/LoopInfo.h
+++ b/llvm/include/llvm/Analysis/LoopInfo.h
@@ -22,6 +22,7 @@
 #include "llvm/IR/Instructions.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/GenericLoopInfo.h"
 #include <algorithm>
 #include <optional>
diff --git a/llvm/include/llvm/Analysis/LoopIterator.h \
b/llvm/include/llvm/Analysis/LoopIterator.h index 360f196a80daf4b..9d16479484d7886 \
                100644
--- a/llvm/include/llvm/Analysis/LoopIterator.h
+++ b/llvm/include/llvm/Analysis/LoopIterator.h
@@ -25,6 +25,7 @@
 
 #include "llvm/ADT/PostOrderIterator.h"
 #include "llvm/Analysis/LoopInfo.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/LoopNestAnalysis.h \
b/llvm/include/llvm/Analysis/LoopNestAnalysis.h index \
                852a6c438d43aaa..7751dae96c7cc3f 100644
--- a/llvm/include/llvm/Analysis/LoopNestAnalysis.h
+++ b/llvm/include/llvm/Analysis/LoopNestAnalysis.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/Analysis/LoopInfo.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/LoopPass.h \
b/llvm/include/llvm/Analysis/LoopPass.h index c5f08d0ae8af68a..608712ba7f6dd79 100644
--- a/llvm/include/llvm/Analysis/LoopPass.h
+++ b/llvm/include/llvm/Analysis/LoopPass.h
@@ -16,6 +16,7 @@
 
 #include "llvm/IR/LegacyPassManagers.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <deque>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/LoopUnrollAnalyzer.h \
b/llvm/include/llvm/Analysis/LoopUnrollAnalyzer.h index \
                eada6a647763ba2..6014942558e71c7 100644
--- a/llvm/include/llvm/Analysis/LoopUnrollAnalyzer.h
+++ b/llvm/include/llvm/Analysis/LoopUnrollAnalyzer.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/Analysis/ScalarEvolution.h"
 #include "llvm/IR/InstVisitor.h"
+#include "llvm/Support/Compiler.h"
 
 // This class is used to get an estimate of the optimization effects that we
 // could get from complete loop unrolling. It comes from the fact that some
diff --git a/llvm/include/llvm/Analysis/MLInlineAdvisor.h \
b/llvm/include/llvm/Analysis/MLInlineAdvisor.h index f58862e533529c8..8ece7f5343da21c \
                100644
--- a/llvm/include/llvm/Analysis/MLInlineAdvisor.h
+++ b/llvm/include/llvm/Analysis/MLInlineAdvisor.h
@@ -14,6 +14,7 @@
 #include "llvm/Analysis/LazyCallGraph.h"
 #include "llvm/Analysis/MLModelRunner.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 #include <deque>
 #include <map>
diff --git a/llvm/include/llvm/Analysis/MLModelRunner.h \
b/llvm/include/llvm/Analysis/MLModelRunner.h index 903411fbdf7ecf1..b8c64ac1ee92d1f \
                100644
--- a/llvm/include/llvm/Analysis/MLModelRunner.h
+++ b/llvm/include/llvm/Analysis/MLModelRunner.h
@@ -12,6 +12,7 @@
 
 #include "llvm/Analysis/TensorSpec.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class LLVMContext;
diff --git a/llvm/include/llvm/Analysis/MemDerefPrinter.h \
b/llvm/include/llvm/Analysis/MemDerefPrinter.h index bafdc543eeaf4c3..0166c15b6f4222c \
                100644
--- a/llvm/include/llvm/Analysis/MemDerefPrinter.h
+++ b/llvm/include/llvm/Analysis/MemDerefPrinter.h
@@ -10,6 +10,7 @@
 #define LLVM_ANALYSIS_MEMDEREFPRINTER_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class MemDerefPrinterPass : public PassInfoMixin<MemDerefPrinterPass> {
diff --git a/llvm/include/llvm/Analysis/MemoryBuiltins.h \
b/llvm/include/llvm/Analysis/MemoryBuiltins.h index 711bbf6a0afe5f6..f1d62ddd3ef9941 \
                100644
--- a/llvm/include/llvm/Analysis/MemoryBuiltins.h
+++ b/llvm/include/llvm/Analysis/MemoryBuiltins.h
@@ -22,6 +22,7 @@
 #include "llvm/IR/IRBuilder.h"
 #include "llvm/IR/InstVisitor.h"
 #include "llvm/IR/ValueHandle.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <optional>
 #include <utility>
diff --git a/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h \
b/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h index \
                27185aa9942e4e3..dcedd8c76f387a7 100644
--- a/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
+++ b/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
@@ -23,6 +23,7 @@
 #include "llvm/IR/PredIteratorCache.h"
 #include "llvm/IR/ValueHandle.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/MemoryLocation.h \
b/llvm/include/llvm/Analysis/MemoryLocation.h index 85ca84e68a13971..fbf739315dc468c \
                100644
--- a/llvm/include/llvm/Analysis/MemoryLocation.h
+++ b/llvm/include/llvm/Analysis/MemoryLocation.h
@@ -17,6 +17,7 @@
 
 #include "llvm/ADT/DenseMapInfo.h"
 #include "llvm/IR/Metadata.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/TypeSize.h"
 
 #include <optional>
diff --git a/llvm/include/llvm/Analysis/MemoryProfileInfo.h \
b/llvm/include/llvm/Analysis/MemoryProfileInfo.h index \
                355bff46f6279f5..baf1cbca64fac57 100644
--- a/llvm/include/llvm/Analysis/MemoryProfileInfo.h
+++ b/llvm/include/llvm/Analysis/MemoryProfileInfo.h
@@ -18,6 +18,7 @@
 #include "llvm/IR/Metadata.h"
 #include "llvm/IR/Module.h"
 #include "llvm/IR/ModuleSummaryIndex.h"
+#include "llvm/Support/Compiler.h"
 #include <map>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/MemorySSA.h \
b/llvm/include/llvm/Analysis/MemorySSA.h index 94d7f1a78b8470c..40b83fb9569abcf \
                100644
--- a/llvm/include/llvm/Analysis/MemorySSA.h
+++ b/llvm/include/llvm/Analysis/MemorySSA.h
@@ -98,6 +98,7 @@
 #include "llvm/IR/Type.h"
 #include "llvm/IR/User.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <cassert>
 #include <cstddef>
diff --git a/llvm/include/llvm/Analysis/MemorySSAUpdater.h \
b/llvm/include/llvm/Analysis/MemorySSAUpdater.h index \
                2bcd1a462871643..e1455e4c8a306b8 100644
--- a/llvm/include/llvm/Analysis/MemorySSAUpdater.h
+++ b/llvm/include/llvm/Analysis/MemorySSAUpdater.h
@@ -37,6 +37,7 @@
 #include "llvm/Analysis/MemorySSA.h"
 #include "llvm/IR/ValueHandle.h"
 #include "llvm/IR/ValueMap.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/CFGDiff.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/ModuleDebugInfoPrinter.h \
b/llvm/include/llvm/Analysis/ModuleDebugInfoPrinter.h index \
                fa91e4f653d04d0..9e9fc1d59320d78 100644
--- a/llvm/include/llvm/Analysis/ModuleDebugInfoPrinter.h
+++ b/llvm/include/llvm/Analysis/ModuleDebugInfoPrinter.h
@@ -11,6 +11,7 @@
 
 #include "llvm/IR/DebugInfo.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class raw_ostream;
diff --git a/llvm/include/llvm/Analysis/ModuleSummaryAnalysis.h \
b/llvm/include/llvm/Analysis/ModuleSummaryAnalysis.h index \
                e36dea58cec454d..f89b396b500e236 100644
--- a/llvm/include/llvm/Analysis/ModuleSummaryAnalysis.h
+++ b/llvm/include/llvm/Analysis/ModuleSummaryAnalysis.h
@@ -16,6 +16,7 @@
 #include "llvm/IR/ModuleSummaryIndex.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <functional>
 #include <optional>
 
diff --git a/llvm/include/llvm/Analysis/MustExecute.h \
b/llvm/include/llvm/Analysis/MustExecute.h index 9c97bd1725ac2c9..e2cd7349b5dba55 \
                100644
--- a/llvm/include/llvm/Analysis/MustExecute.h
+++ b/llvm/include/llvm/Analysis/MustExecute.h
@@ -28,6 +28,7 @@
 #include "llvm/Analysis/InstructionPrecedenceTracking.h"
 #include "llvm/IR/EHPersonalities.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/NoInferenceModelRunner.h \
b/llvm/include/llvm/Analysis/NoInferenceModelRunner.h index \
                980b40500d7cc3e..4a6f0f57f329525 100644
--- a/llvm/include/llvm/Analysis/NoInferenceModelRunner.h
+++ b/llvm/include/llvm/Analysis/NoInferenceModelRunner.h
@@ -13,6 +13,7 @@
 #include "llvm/Analysis/MLModelRunner.h"
 #include "llvm/Analysis/TensorSpec.h"
 #include "llvm/Config/llvm-config.h"
+#include "llvm/Support/Compiler.h"
 namespace llvm {
 /// A pseudo model runner. We use it to store feature values when collecting
 /// logs for the default policy, in 'development' mode, but never ask it to
diff --git a/llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h \
b/llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h index \
                1a154c648fe6115..b56651e84b59630 100644
--- a/llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h
+++ b/llvm/include/llvm/Analysis/ObjCARCAliasAnalysis.h
@@ -24,6 +24,7 @@
 
 #include "llvm/Analysis/AliasAnalysis.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace objcarc {
diff --git a/llvm/include/llvm/Analysis/ObjCARCAnalysisUtils.h \
b/llvm/include/llvm/Analysis/ObjCARCAnalysisUtils.h index \
                20ff5a5bc6e0340..c191132ebff7a0a 100644
--- a/llvm/include/llvm/Analysis/ObjCARCAnalysisUtils.h
+++ b/llvm/include/llvm/Analysis/ObjCARCAnalysisUtils.h
@@ -27,6 +27,7 @@
 #include "llvm/IR/Constants.h"
 #include "llvm/IR/Module.h"
 #include "llvm/IR/ValueHandle.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/ObjCARCInstKind.h \
b/llvm/include/llvm/Analysis/ObjCARCInstKind.h index e332bcf88be79b5..da27ee752df4a39 \
                100644
--- a/llvm/include/llvm/Analysis/ObjCARCInstKind.h
+++ b/llvm/include/llvm/Analysis/ObjCARCInstKind.h
@@ -10,6 +10,7 @@
 #define LLVM_ANALYSIS_OBJCARCINSTKIND_H
 
 #include "llvm/IR/Instructions.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace objcarc {
diff --git a/llvm/include/llvm/Analysis/OptimizationRemarkEmitter.h \
b/llvm/include/llvm/Analysis/OptimizationRemarkEmitter.h index \
                8aaeaf29910293b..64a022fcd317cb8 100644
--- a/llvm/include/llvm/Analysis/OptimizationRemarkEmitter.h
+++ b/llvm/include/llvm/Analysis/OptimizationRemarkEmitter.h
@@ -18,6 +18,7 @@
 #include "llvm/IR/DiagnosticInfo.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/OverflowInstAnalysis.h \
b/llvm/include/llvm/Analysis/OverflowInstAnalysis.h index \
                761d20f17a8b832..49e0207038cdcd6 100644
--- a/llvm/include/llvm/Analysis/OverflowInstAnalysis.h
+++ b/llvm/include/llvm/Analysis/OverflowInstAnalysis.h
@@ -14,6 +14,8 @@
 #ifndef LLVM_ANALYSIS_OVERFLOWINSTANALYSIS_H
 #define LLVM_ANALYSIS_OVERFLOWINSTANALYSIS_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 class Use;
 class Value;
diff --git a/llvm/include/llvm/Analysis/PHITransAddr.h \
b/llvm/include/llvm/Analysis/PHITransAddr.h index de9c3c4fd292132..364fcd82710cb38 \
                100644
--- a/llvm/include/llvm/Analysis/PHITransAddr.h
+++ b/llvm/include/llvm/Analysis/PHITransAddr.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/IR/Instruction.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class AssumptionCache;
diff --git a/llvm/include/llvm/Analysis/Passes.h \
b/llvm/include/llvm/Analysis/Passes.h index ac1bc3549910c8c..63df72c33f8b798 100644
--- a/llvm/include/llvm/Analysis/Passes.h
+++ b/llvm/include/llvm/Analysis/Passes.h
@@ -14,6 +14,8 @@
 #ifndef LLVM_ANALYSIS_PASSES_H
 #define LLVM_ANALYSIS_PASSES_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
   class FunctionPass;
   class ImmutablePass;
diff --git a/llvm/include/llvm/Analysis/PhiValues.h \
b/llvm/include/llvm/Analysis/PhiValues.h index ecbb8874b378e25..7ee5dc05bae480d \
                100644
--- a/llvm/include/llvm/Analysis/PhiValues.h
+++ b/llvm/include/llvm/Analysis/PhiValues.h
@@ -24,6 +24,7 @@
 #include "llvm/ADT/SetVector.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/IR/ValueHandle.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Pass.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/PostDominators.h \
b/llvm/include/llvm/Analysis/PostDominators.h index 4383113c8db11e8..e2a0e37b1a91f16 \
                100644
--- a/llvm/include/llvm/Analysis/PostDominators.h
+++ b/llvm/include/llvm/Analysis/PostDominators.h
@@ -16,6 +16,7 @@
 #include "llvm/ADT/DepthFirstIterator.h"
 #include "llvm/IR/Dominators.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Pass.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/ProfileSummaryInfo.h \
b/llvm/include/llvm/Analysis/ProfileSummaryInfo.h index \
                38eb71ba271d06b..ae771016767a342 100644
--- a/llvm/include/llvm/Analysis/ProfileSummaryInfo.h
+++ b/llvm/include/llvm/Analysis/ProfileSummaryInfo.h
@@ -21,6 +21,7 @@
 #include "llvm/IR/PassManager.h"
 #include "llvm/IR/ProfileSummary.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 #include <optional>
 
diff --git a/llvm/include/llvm/Analysis/PtrUseVisitor.h \
b/llvm/include/llvm/Analysis/PtrUseVisitor.h index 86206b2d5e9f883..fbac51f1d12aaa2 \
                100644
--- a/llvm/include/llvm/Analysis/PtrUseVisitor.h
+++ b/llvm/include/llvm/Analysis/PtrUseVisitor.h
@@ -29,6 +29,7 @@
 #include "llvm/IR/DerivedTypes.h"
 #include "llvm/IR/InstVisitor.h"
 #include "llvm/IR/IntrinsicInst.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <type_traits>
 
diff --git a/llvm/include/llvm/Analysis/RegionInfo.h \
b/llvm/include/llvm/Analysis/RegionInfo.h index 612b977f1ffa45d..7bbc35a1e65d858 \
                100644
--- a/llvm/include/llvm/Analysis/RegionInfo.h
+++ b/llvm/include/llvm/Analysis/RegionInfo.h
@@ -45,6 +45,7 @@
 #include "llvm/IR/Dominators.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <cassert>
 #include <map>
diff --git a/llvm/include/llvm/Analysis/RegionIterator.h \
b/llvm/include/llvm/Analysis/RegionIterator.h index ba28b1b902ead28..ee0d857a44b935b \
                100644
--- a/llvm/include/llvm/Analysis/RegionIterator.h
+++ b/llvm/include/llvm/Analysis/RegionIterator.h
@@ -15,6 +15,7 @@
 #include "llvm/ADT/GraphTraits.h"
 #include "llvm/ADT/PointerIntPair.h"
 #include "llvm/Analysis/RegionInfo.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <iterator>
 #include <type_traits>
diff --git a/llvm/include/llvm/Analysis/RegionPass.h \
b/llvm/include/llvm/Analysis/RegionPass.h index dd5e6a1a3b24936..2b23a20752504a6 \
                100644
--- a/llvm/include/llvm/Analysis/RegionPass.h
+++ b/llvm/include/llvm/Analysis/RegionPass.h
@@ -17,6 +17,7 @@
 
 #include "llvm/IR/LegacyPassManagers.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <deque>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/RegionPrinter.h \
b/llvm/include/llvm/Analysis/RegionPrinter.h index 501a5406236e926..3c38e58b41c56e6 \
                100644
--- a/llvm/include/llvm/Analysis/RegionPrinter.h
+++ b/llvm/include/llvm/Analysis/RegionPrinter.h
@@ -16,6 +16,7 @@
 
 #include "llvm/Analysis/DOTGraphTraitsPass.h"
 #include "llvm/Analysis/RegionInfo.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
   class FunctionPass;
diff --git a/llvm/include/llvm/Analysis/ReleaseModeModelRunner.h \
b/llvm/include/llvm/Analysis/ReleaseModeModelRunner.h index \
                91855138fe18e61..c0ce5dfadf6e416 100644
--- a/llvm/include/llvm/Analysis/ReleaseModeModelRunner.h
+++ b/llvm/include/llvm/Analysis/ReleaseModeModelRunner.h
@@ -16,6 +16,7 @@
 
 #include "llvm/Analysis/MLModelRunner.h"
 #include "llvm/Analysis/TensorSpec.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 
 #include <memory>
diff --git a/llvm/include/llvm/Analysis/ReplayInlineAdvisor.h \
b/llvm/include/llvm/Analysis/ReplayInlineAdvisor.h index \
                0c5b566f60a4704..71abd958ee6bd3a 100644
--- a/llvm/include/llvm/Analysis/ReplayInlineAdvisor.h
+++ b/llvm/include/llvm/Analysis/ReplayInlineAdvisor.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/StringSet.h"
 #include "llvm/Analysis/InlineAdvisor.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class CallBase;
diff --git a/llvm/include/llvm/Analysis/ScalarEvolution.h \
b/llvm/include/llvm/Analysis/ScalarEvolution.h index c108a7ae9c9b59d..3bdc15f47397f3c \
                100644
--- a/llvm/include/llvm/Analysis/ScalarEvolution.h
+++ b/llvm/include/llvm/Analysis/ScalarEvolution.h
@@ -36,6 +36,7 @@
 #include "llvm/IR/ValueHandle.h"
 #include "llvm/IR/ValueMap.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 #include <memory>
diff --git a/llvm/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h \
b/llvm/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h index \
                53959b6c69ca57e..4182091f84f59e3 100644
--- a/llvm/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h
+++ b/llvm/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h
@@ -15,6 +15,7 @@
 
 #include "llvm/Analysis/AliasAnalysis.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/ScalarEvolutionDivision.h \
b/llvm/include/llvm/Analysis/ScalarEvolutionDivision.h index \
                3283d438ccb515c..055e50c415c296b 100644
--- a/llvm/include/llvm/Analysis/ScalarEvolutionDivision.h
+++ b/llvm/include/llvm/Analysis/ScalarEvolutionDivision.h
@@ -14,6 +14,7 @@
 #define LLVM_ANALYSIS_SCALAREVOLUTIONDIVISION_H
 
 #include "llvm/Analysis/ScalarEvolutionExpressions.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h \
b/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h index \
                91848a91c17e6e6..1a53dd54796fc6f 100644
--- a/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
+++ b/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
@@ -21,6 +21,7 @@
 #include "llvm/IR/Constants.h"
 #include "llvm/IR/ValueHandle.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <cassert>
 #include <cstddef>
diff --git a/llvm/include/llvm/Analysis/ScalarEvolutionNormalization.h \
b/llvm/include/llvm/Analysis/ScalarEvolutionNormalization.h index \
                b34db8f5a03a398..8899e72133b9aeb 100644
--- a/llvm/include/llvm/Analysis/ScalarEvolutionNormalization.h
+++ b/llvm/include/llvm/Analysis/ScalarEvolutionNormalization.h
@@ -37,6 +37,7 @@
 
 #include "llvm/ADT/STLFunctionalExtras.h"
 #include "llvm/ADT/SmallPtrSet.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/ScopedNoAliasAA.h \
b/llvm/include/llvm/Analysis/ScopedNoAliasAA.h index f6ade7c83a61af3..87b41c4ce101867 \
                100644
--- a/llvm/include/llvm/Analysis/ScopedNoAliasAA.h
+++ b/llvm/include/llvm/Analysis/ScopedNoAliasAA.h
@@ -17,6 +17,7 @@
 #include "llvm/Analysis/AliasAnalysis.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/SparsePropagation.h \
b/llvm/include/llvm/Analysis/SparsePropagation.h index \
                d5805a7314757f6..daacd91fb58b2e6 100644
--- a/llvm/include/llvm/Analysis/SparsePropagation.h
+++ b/llvm/include/llvm/Analysis/SparsePropagation.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/IR/Constants.h"
 #include "llvm/IR/Instructions.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include <set>
 
diff --git a/llvm/include/llvm/Analysis/StackLifetime.h \
b/llvm/include/llvm/Analysis/StackLifetime.h index 7fd88362276a190..c95277baf2343ab \
                100644
--- a/llvm/include/llvm/Analysis/StackLifetime.h
+++ b/llvm/include/llvm/Analysis/StackLifetime.h
@@ -15,6 +15,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringExtras.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 #include <utility>
 
diff --git a/llvm/include/llvm/Analysis/StackSafetyAnalysis.h \
b/llvm/include/llvm/Analysis/StackSafetyAnalysis.h index \
                751735f3e59f6e8..f8611da024c519b 100644
--- a/llvm/include/llvm/Analysis/StackSafetyAnalysis.h
+++ b/llvm/include/llvm/Analysis/StackSafetyAnalysis.h
@@ -16,6 +16,7 @@
 #include "llvm/IR/ModuleSummaryIndex.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/SyntheticCountsUtils.h \
b/llvm/include/llvm/Analysis/SyntheticCountsUtils.h index \
                5a6c7dd53c7e557..2b630bbd3d4b929 100644
--- a/llvm/include/llvm/Analysis/SyntheticCountsUtils.h
+++ b/llvm/include/llvm/Analysis/SyntheticCountsUtils.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/STLFunctionalExtras.h"
 #include "llvm/Analysis/CallGraph.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ScaledNumber.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/TargetFolder.h \
b/llvm/include/llvm/Analysis/TargetFolder.h index 3d9edf132dc107f..58fe1ec4ee11759 \
                100644
--- a/llvm/include/llvm/Analysis/TargetFolder.h
+++ b/llvm/include/llvm/Analysis/TargetFolder.h
@@ -23,6 +23,7 @@
 #include "llvm/IR/Constants.h"
 #include "llvm/IR/IRBuilderFolder.h"
 #include "llvm/IR/Operator.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/TargetLibraryInfo.h \
b/llvm/include/llvm/Analysis/TargetLibraryInfo.h index \
                6f045fa30661174..c29c38cf5504854 100644
--- a/llvm/include/llvm/Analysis/TargetLibraryInfo.h
+++ b/llvm/include/llvm/Analysis/TargetLibraryInfo.h
@@ -13,6 +13,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/IR/InstrTypes.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Pass.h"
 #include "llvm/TargetParser/Triple.h"
 #include <optional>
diff --git a/llvm/include/llvm/Analysis/TargetTransformInfo.h \
b/llvm/include/llvm/Analysis/TargetTransformInfo.h index \
                1ae595d2110457d..4d48826e95b9742 100644
--- a/llvm/include/llvm/Analysis/TargetTransformInfo.h
+++ b/llvm/include/llvm/Analysis/TargetTransformInfo.h
@@ -28,6 +28,7 @@
 #include "llvm/Pass.h"
 #include "llvm/Support/AtomicOrdering.h"
 #include "llvm/Support/BranchProbability.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/InstructionCost.h"
 #include <functional>
 #include <optional>
diff --git a/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h \
b/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h index \
                b34eaa3d6f7dd7d..a2e3d41ee4a740d 100644
--- a/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
+++ b/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
@@ -22,6 +22,7 @@
 #include "llvm/IR/IntrinsicInst.h"
 #include "llvm/IR/Operator.h"
 #include "llvm/IR/PatternMatch.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 #include <utility>
 
diff --git a/llvm/include/llvm/Analysis/TensorSpec.h \
b/llvm/include/llvm/Analysis/TensorSpec.h index c50507b7a6b1144..599db5c1c0a865d \
                100644
--- a/llvm/include/llvm/Analysis/TensorSpec.h
+++ b/llvm/include/llvm/Analysis/TensorSpec.h
@@ -13,6 +13,7 @@
 
 #include "llvm/ADT/StringMap.h"
 #include "llvm/IR/LLVMContext.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/JSON.h"
 
 #include <memory>
diff --git a/llvm/include/llvm/Analysis/Trace.h b/llvm/include/llvm/Analysis/Trace.h
index a1ffd03c4053030..acc72812eadbef4 100644
--- a/llvm/include/llvm/Analysis/Trace.h
+++ b/llvm/include/llvm/Analysis/Trace.h
@@ -17,6 +17,7 @@
 #ifndef LLVM_ANALYSIS_TRACE_H
 #define LLVM_ANALYSIS_TRACE_H
 
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <vector>
 
diff --git a/llvm/include/llvm/Analysis/TypeBasedAliasAnalysis.h \
b/llvm/include/llvm/Analysis/TypeBasedAliasAnalysis.h index \
                36dd39c033aa63d..10f7526518e4ab0 100644
--- a/llvm/include/llvm/Analysis/TypeBasedAliasAnalysis.h
+++ b/llvm/include/llvm/Analysis/TypeBasedAliasAnalysis.h
@@ -18,6 +18,7 @@
 #include "llvm/Analysis/AliasAnalysis.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/TypeMetadataUtils.h \
b/llvm/include/llvm/Analysis/TypeMetadataUtils.h index \
                dab67aad1ab0eb7..c334c540e935cfe 100644
--- a/llvm/include/llvm/Analysis/TypeMetadataUtils.h
+++ b/llvm/include/llvm/Analysis/TypeMetadataUtils.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_ANALYSIS_TYPEMETADATAUTILS_H
 #define LLVM_ANALYSIS_TYPEMETADATAUTILS_H
 
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Analysis/UniformityAnalysis.h \
b/llvm/include/llvm/Analysis/UniformityAnalysis.h index \
                f42c4950ed649fd..04ba816430b674e 100644
--- a/llvm/include/llvm/Analysis/UniformityAnalysis.h
+++ b/llvm/include/llvm/Analysis/UniformityAnalysis.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/GenericUniformityInfo.h"
 #include "llvm/Analysis/CycleAnalysis.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Analysis/Utils/ImportedFunctionsInliningStatistics.h \
b/llvm/include/llvm/Analysis/Utils/ImportedFunctionsInliningStatistics.h index \
                45ef4dbe2155e3b..48497f5543d6ef1 100644
--- a/llvm/include/llvm/Analysis/Utils/ImportedFunctionsInliningStatistics.h
+++ b/llvm/include/llvm/Analysis/Utils/ImportedFunctionsInliningStatistics.h
@@ -15,6 +15,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 #include <vector>
 
diff --git a/llvm/include/llvm/Analysis/Utils/Local.h \
b/llvm/include/llvm/Analysis/Utils/Local.h index e1dbfd3e5f37c01..68cbd8907da9397 \
                100644
--- a/llvm/include/llvm/Analysis/Utils/Local.h
+++ b/llvm/include/llvm/Analysis/Utils/Local.h
@@ -14,6 +14,8 @@
 #ifndef LLVM_ANALYSIS_UTILS_LOCAL_H
 #define LLVM_ANALYSIS_UTILS_LOCAL_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 
 class DataLayout;
diff --git a/llvm/include/llvm/Analysis/Utils/TrainingLogger.h \
b/llvm/include/llvm/Analysis/Utils/TrainingLogger.h index \
                8f46779a732d15e..d59a3dbe53c9e9f 100644
--- a/llvm/include/llvm/Analysis/Utils/TrainingLogger.h
+++ b/llvm/include/llvm/Analysis/Utils/TrainingLogger.h
@@ -58,6 +58,7 @@
 #include "llvm/ADT/StringMap.h"
 #include "llvm/Analysis/TensorSpec.h"
 #include "llvm/IR/LLVMContext.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/JSON.h"
 
 #include <memory>
diff --git a/llvm/include/llvm/Analysis/ValueLattice.h \
b/llvm/include/llvm/Analysis/ValueLattice.h index 5ae32b5e775e5b5..1da5eb3c61efbd0 \
                100644
--- a/llvm/include/llvm/Analysis/ValueLattice.h
+++ b/llvm/include/llvm/Analysis/ValueLattice.h
@@ -12,6 +12,7 @@
 #include "llvm/IR/Constants.h"
 #include "llvm/IR/ConstantRange.h"
 #include "llvm/IR/Instructions.h"
+#include "llvm/Support/Compiler.h"
 
 //===----------------------------------------------------------------------===//
 //                               ValueLatticeElement
diff --git a/llvm/include/llvm/Analysis/ValueLatticeUtils.h \
b/llvm/include/llvm/Analysis/ValueLatticeUtils.h index \
                a3bbb96129bffc5..6a1db715b854e59 100644
--- a/llvm/include/llvm/Analysis/ValueLatticeUtils.h
+++ b/llvm/include/llvm/Analysis/ValueLatticeUtils.h
@@ -14,6 +14,8 @@
 #ifndef LLVM_ANALYSIS_VALUELATTICEUTILS_H
 #define LLVM_ANALYSIS_VALUELATTICEUTILS_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 
 class Function;
diff --git a/llvm/include/llvm/Analysis/ValueTracking.h \
b/llvm/include/llvm/Analysis/ValueTracking.h index 44e083c63c82c05..ca792b679653fa1 \
                100644
--- a/llvm/include/llvm/Analysis/ValueTracking.h
+++ b/llvm/include/llvm/Analysis/ValueTracking.h
@@ -20,6 +20,7 @@
 #include "llvm/IR/DataLayout.h"
 #include "llvm/IR/InstrTypes.h"
 #include "llvm/IR/Intrinsics.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 
diff --git a/llvm/include/llvm/Analysis/VectorUtils.h \
b/llvm/include/llvm/Analysis/VectorUtils.h index ad69f5711abd483..6cc39ed9b194dad \
                100644
--- a/llvm/include/llvm/Analysis/VectorUtils.h
+++ b/llvm/include/llvm/Analysis/VectorUtils.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/Analysis/LoopAccessAnalysis.h"
 #include "llvm/Support/CheckedArithmetic.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class TargetLibraryInfo;
diff --git a/llvm/include/llvm/AsmParser/LLLexer.h \
b/llvm/include/llvm/AsmParser/LLLexer.h index bd929db33c4a2bb..a45d1cb885d008b 100644
--- a/llvm/include/llvm/AsmParser/LLLexer.h
+++ b/llvm/include/llvm/AsmParser/LLLexer.h
@@ -16,6 +16,7 @@
 #include "LLToken.h"
 #include "llvm/ADT/APFloat.h"
 #include "llvm/ADT/APSInt.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/SMLoc.h"
 #include <string>
 
diff --git a/llvm/include/llvm/AsmParser/LLParser.h \
b/llvm/include/llvm/AsmParser/LLParser.h index eca908a24aac7b2..bb16097caf2cf23 \
                100644
--- a/llvm/include/llvm/AsmParser/LLParser.h
+++ b/llvm/include/llvm/AsmParser/LLParser.h
@@ -20,6 +20,7 @@
 #include "llvm/IR/FMF.h"
 #include "llvm/IR/Instructions.h"
 #include "llvm/IR/ModuleSummaryIndex.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ModRef.h"
 #include <map>
 #include <optional>
diff --git a/llvm/include/llvm/AsmParser/Parser.h \
b/llvm/include/llvm/AsmParser/Parser.h index c57e7abe554dbd2..397b2206be2a954 100644
--- a/llvm/include/llvm/AsmParser/Parser.h
+++ b/llvm/include/llvm/AsmParser/Parser.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/STLFunctionalExtras.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 #include <optional>
 
diff --git a/llvm/include/llvm/AsmParser/SlotMapping.h \
b/llvm/include/llvm/AsmParser/SlotMapping.h index 0e95eb816b4c6c1..78208313d97d05b \
                100644
--- a/llvm/include/llvm/AsmParser/SlotMapping.h
+++ b/llvm/include/llvm/AsmParser/SlotMapping.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/StringMap.h"
 #include "llvm/IR/TrackingMDRef.h"
+#include "llvm/Support/Compiler.h"
 #include <map>
 #include <vector>
 
diff --git a/llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h \
b/llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h index \
                f6268b48e6b29a7..ca93b57b94e4771 100644
--- a/llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h
+++ b/llvm/include/llvm/BinaryFormat/AMDGPUMetadataVerifier.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/STLFunctionalExtras.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/BinaryFormat/MsgPackReader.h"
+#include "llvm/Support/Compiler.h"
 
 #include <cstddef>
 #include <optional>
diff --git a/llvm/include/llvm/BinaryFormat/COFF.h \
b/llvm/include/llvm/BinaryFormat/COFF.h index d2ec2a2f67e54cb..278094681849ace 100644
--- a/llvm/include/llvm/BinaryFormat/COFF.h
+++ b/llvm/include/llvm/BinaryFormat/COFF.h
@@ -22,6 +22,7 @@
 #ifndef LLVM_BINARYFORMAT_COFF_H
 #define LLVM_BINARYFORMAT_COFF_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 #include <cassert>
 
diff --git a/llvm/include/llvm/BinaryFormat/DXContainer.h \
b/llvm/include/llvm/BinaryFormat/DXContainer.h index f202f1bf6dff180..dd4c89b18246c40 \
                100644
--- a/llvm/include/llvm/BinaryFormat/DXContainer.h
+++ b/llvm/include/llvm/BinaryFormat/DXContainer.h
@@ -14,6 +14,7 @@
 #define LLVM_BINARYFORMAT_DXCONTAINER_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/SwapByteOrder.h"
 #include "llvm/TargetParser/Triple.h"
 
diff --git a/llvm/include/llvm/BinaryFormat/ELF.h \
b/llvm/include/llvm/BinaryFormat/ELF.h index a303d404f9be43c..e16bf6c72929b0f 100644
--- a/llvm/include/llvm/BinaryFormat/ELF.h
+++ b/llvm/include/llvm/BinaryFormat/ELF.h
@@ -20,6 +20,7 @@
 #define LLVM_BINARYFORMAT_ELF_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <cstring>
 
diff --git a/llvm/include/llvm/BinaryFormat/Magic.h \
b/llvm/include/llvm/BinaryFormat/Magic.h index 329c96f5c14c404..eaf70f32ac15045 \
                100644
--- a/llvm/include/llvm/BinaryFormat/Magic.h
+++ b/llvm/include/llvm/BinaryFormat/Magic.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_BINARYFORMAT_MAGIC_H
 #define LLVM_BINARYFORMAT_MAGIC_H
 
+#include "llvm/Support/Compiler.h"
 #include <system_error>
 
 namespace llvm {
diff --git a/llvm/include/llvm/BinaryFormat/Minidump.h \
b/llvm/include/llvm/BinaryFormat/Minidump.h index bc303929498d030..c1bfe9d5b5b89e6 \
                100644
--- a/llvm/include/llvm/BinaryFormat/Minidump.h
+++ b/llvm/include/llvm/BinaryFormat/Minidump.h
@@ -20,6 +20,7 @@
 
 #include "llvm/ADT/BitmaskEnum.h"
 #include "llvm/ADT/DenseMapInfo.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/BinaryFormat/MsgPackDocument.h \
b/llvm/include/llvm/BinaryFormat/MsgPackDocument.h index \
                7a181bd9bf84115..15c2e7e2e57000c 100644
--- a/llvm/include/llvm/BinaryFormat/MsgPackDocument.h
+++ b/llvm/include/llvm/BinaryFormat/MsgPackDocument.h
@@ -18,6 +18,7 @@
 #define LLVM_BINARYFORMAT_MSGPACKDOCUMENT_H
 
 #include "llvm/BinaryFormat/MsgPackReader.h"
+#include "llvm/Support/Compiler.h"
 #include <map>
 
 namespace llvm {
diff --git a/llvm/include/llvm/BinaryFormat/MsgPackReader.h \
b/llvm/include/llvm/BinaryFormat/MsgPackReader.h index \
                5123fb65cf0951b..ccb4da9d4ed20e5 100644
--- a/llvm/include/llvm/BinaryFormat/MsgPackReader.h
+++ b/llvm/include/llvm/BinaryFormat/MsgPackReader.h
@@ -33,6 +33,7 @@
 #ifndef LLVM_BINARYFORMAT_MSGPACKREADER_H
 #define LLVM_BINARYFORMAT_MSGPACKREADER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MemoryBufferRef.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/BinaryFormat/MsgPackWriter.h \
b/llvm/include/llvm/BinaryFormat/MsgPackWriter.h index \
                b3d3c3bcdef0eb2..70b4e2ddf298d65 100644
--- a/llvm/include/llvm/BinaryFormat/MsgPackWriter.h
+++ b/llvm/include/llvm/BinaryFormat/MsgPackWriter.h
@@ -28,6 +28,7 @@
 #ifndef LLVM_BINARYFORMAT_MSGPACKWRITER_H
 #define LLVM_BINARYFORMAT_MSGPACKWRITER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/EndianStream.h"
 #include "llvm/Support/MemoryBufferRef.h"
 
diff --git a/llvm/include/llvm/BinaryFormat/Wasm.h \
b/llvm/include/llvm/BinaryFormat/Wasm.h index 48195af7def30e9..6e06a66897bb3e4 100644
--- a/llvm/include/llvm/BinaryFormat/Wasm.h
+++ b/llvm/include/llvm/BinaryFormat/Wasm.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/BinaryFormat/WasmTraits.h \
b/llvm/include/llvm/BinaryFormat/WasmTraits.h index bef9dd3291ca76e..e39488c213ea905 \
                100644
--- a/llvm/include/llvm/BinaryFormat/WasmTraits.h
+++ b/llvm/include/llvm/BinaryFormat/WasmTraits.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/Hashing.h"
 #include "llvm/BinaryFormat/Wasm.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/BinaryFormat/XCOFF.h \
b/llvm/include/llvm/BinaryFormat/XCOFF.h index 5774e01429d37ea..966890eca0b3892 \
                100644
--- a/llvm/include/llvm/BinaryFormat/XCOFF.h
+++ b/llvm/include/llvm/BinaryFormat/XCOFF.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_BINARYFORMAT_XCOFF_H
 #define LLVM_BINARYFORMAT_XCOFF_H
 
+#include "llvm/Support/Compiler.h"
 #include <stddef.h>
 #include <stdint.h>
 
diff --git a/llvm/include/llvm/Bitcode/BitcodeAnalyzer.h \
b/llvm/include/llvm/Bitcode/BitcodeAnalyzer.h index c7219a52f976b78..a4a8c4d27ac19ff \
                100644
--- a/llvm/include/llvm/Bitcode/BitcodeAnalyzer.h
+++ b/llvm/include/llvm/Bitcode/BitcodeAnalyzer.h
@@ -16,6 +16,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Bitstream/BitstreamReader.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <map>
 #include <optional>
diff --git a/llvm/include/llvm/Bitcode/BitcodeCommon.h \
b/llvm/include/llvm/Bitcode/BitcodeCommon.h index 22d1872fe49cc9f..59c70818df3302f \
                100644
--- a/llvm/include/llvm/Bitcode/BitcodeCommon.h
+++ b/llvm/include/llvm/Bitcode/BitcodeCommon.h
@@ -15,6 +15,7 @@
 #define LLVM_BITCODE_BITCODECOMMON_H
 
 #include "llvm/ADT/Bitfields.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Bitcode/BitcodeReader.h \
b/llvm/include/llvm/Bitcode/BitcodeReader.h index 8fc1dbda11ed296..4b6d94d48a1c173 \
                100644
--- a/llvm/include/llvm/Bitcode/BitcodeReader.h
+++ b/llvm/include/llvm/Bitcode/BitcodeReader.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Bitstream/BitCodeEnums.h"
 #include "llvm/IR/GlobalValue.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/ErrorOr.h"
diff --git a/llvm/include/llvm/Bitcode/BitcodeWriter.h \
b/llvm/include/llvm/Bitcode/BitcodeWriter.h index 248d33f4502ef03..0420621256b6cf3 \
                100644
--- a/llvm/include/llvm/Bitcode/BitcodeWriter.h
+++ b/llvm/include/llvm/Bitcode/BitcodeWriter.h
@@ -17,6 +17,7 @@
 #include "llvm/IR/ModuleSummaryIndex.h"
 #include "llvm/MC/StringTableBuilder.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MemoryBufferRef.h"
 #include <map>
 #include <memory>
diff --git a/llvm/include/llvm/Bitcode/BitcodeWriterPass.h \
b/llvm/include/llvm/Bitcode/BitcodeWriterPass.h index \
                3c2471237532b81..c9b5e4f4603f199 100644
--- a/llvm/include/llvm/Bitcode/BitcodeWriterPass.h
+++ b/llvm/include/llvm/Bitcode/BitcodeWriterPass.h
@@ -15,6 +15,7 @@
 #define LLVM_BITCODE_BITCODEWRITERPASS_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Module;
diff --git a/llvm/include/llvm/Bitstream/BitCodes.h \
b/llvm/include/llvm/Bitstream/BitCodes.h index 93888f7d3b335d3..2367112e004af1a \
                100644
--- a/llvm/include/llvm/Bitstream/BitCodes.h
+++ b/llvm/include/llvm/Bitstream/BitCodes.h
@@ -20,6 +20,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringExtras.h"
 #include "llvm/Bitstream/BitCodeEnums.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <cassert>
diff --git a/llvm/include/llvm/Bitstream/BitstreamReader.h \
b/llvm/include/llvm/Bitstream/BitstreamReader.h index \
                3a838309fb1ca6f..f252b9126ef3cf6 100644
--- a/llvm/include/llvm/Bitstream/BitstreamReader.h
+++ b/llvm/include/llvm/Bitstream/BitstreamReader.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/Bitstream/BitCodes.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MemoryBufferRef.h"
diff --git a/llvm/include/llvm/Bitstream/BitstreamWriter.h \
b/llvm/include/llvm/Bitstream/BitstreamWriter.h index \
                37c9bc905397018..a485d1270b9477f 100644
--- a/llvm/include/llvm/Bitstream/BitstreamWriter.h
+++ b/llvm/include/llvm/Bitstream/BitstreamWriter.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Bitstream/BitCodes.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/MathExtras.h"
 #include "llvm/Support/raw_ostream.h"
diff --git a/llvm/include/llvm/CodeGen/AccelTable.h \
b/llvm/include/llvm/CodeGen/AccelTable.h index 46537c9cb68156c..14c2da430c7bfc2 \
                100644
--- a/llvm/include/llvm/CodeGen/AccelTable.h
+++ b/llvm/include/llvm/CodeGen/AccelTable.h
@@ -21,6 +21,7 @@
 #include "llvm/CodeGen/DIE.h"
 #include "llvm/CodeGen/DwarfStringPoolEntry.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DJB.h"
 #include "llvm/Support/Debug.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/CodeGen/Analysis.h \
b/llvm/include/llvm/CodeGen/Analysis.h index 1c67fe2d003d90d..9b96620d808d009 100644
--- a/llvm/include/llvm/CodeGen/Analysis.h
+++ b/llvm/include/llvm/CodeGen/Analysis.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/CodeGen/ISDOpcodes.h"
 #include "llvm/IR/Instructions.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 template <typename T> class SmallVectorImpl;
diff --git a/llvm/include/llvm/CodeGen/AsmPrinter.h \
b/llvm/include/llvm/CodeGen/AsmPrinter.h index 0ac497c5f8efbd6..360a3b020beac90 \
                100644
--- a/llvm/include/llvm/CodeGen/AsmPrinter.h
+++ b/llvm/include/llvm/CodeGen/AsmPrinter.h
@@ -25,6 +25,7 @@
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/CodeGen/StackMaps.h"
 #include "llvm/IR/InlineAsm.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <cstdint>
 #include <memory>
diff --git a/llvm/include/llvm/CodeGen/AsmPrinterHandler.h \
b/llvm/include/llvm/CodeGen/AsmPrinterHandler.h index \
                5c06645f767eb1a..f6921a0bea7cd2e 100644
--- a/llvm/include/llvm/CodeGen/AsmPrinterHandler.h
+++ b/llvm/include/llvm/CodeGen/AsmPrinterHandler.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_CODEGEN_ASMPRINTERHANDLER_H
 #define LLVM_CODEGEN_ASMPRINTERHANDLER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/AssignmentTrackingAnalysis.h \
b/llvm/include/llvm/CodeGen/AssignmentTrackingAnalysis.h index \
                b740ab567b12f49..2f4126c68192ed0 100644
--- a/llvm/include/llvm/CodeGen/AssignmentTrackingAnalysis.h
+++ b/llvm/include/llvm/CodeGen/AssignmentTrackingAnalysis.h
@@ -5,6 +5,7 @@
 #include "llvm/IR/DebugLoc.h"
 #include "llvm/IR/IntrinsicInst.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Function;
diff --git a/llvm/include/llvm/CodeGen/AtomicExpandUtils.h \
b/llvm/include/llvm/CodeGen/AtomicExpandUtils.h index \
                1cb410a0c31c69e..ed6a15c0952349c 100644
--- a/llvm/include/llvm/CodeGen/AtomicExpandUtils.h
+++ b/llvm/include/llvm/CodeGen/AtomicExpandUtils.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/IR/IRBuilder.h"
 #include "llvm/Support/AtomicOrdering.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/BasicBlockSectionUtils.h \
b/llvm/include/llvm/CodeGen/BasicBlockSectionUtils.h index \
                d43f399b2c310a3..ad745b097925ae8 100644
--- a/llvm/include/llvm/CodeGen/BasicBlockSectionUtils.h
+++ b/llvm/include/llvm/CodeGen/BasicBlockSectionUtils.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/BasicBlockSectionsProfileReader.h \
b/llvm/include/llvm/CodeGen/BasicBlockSectionsProfileReader.h index \
                cd27fea771ba1c8..1955176edd23670 100644
--- a/llvm/include/llvm/CodeGen/BasicBlockSectionsProfileReader.h
+++ b/llvm/include/llvm/CodeGen/BasicBlockSectionsProfileReader.h
@@ -23,6 +23,7 @@
 #include "llvm/IR/Module.h"
 #include "llvm/InitializePasses.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/LineIterator.h"
 #include "llvm/Support/MemoryBuffer.h"
diff --git a/llvm/include/llvm/CodeGen/BasicTTIImpl.h \
b/llvm/include/llvm/CodeGen/BasicTTIImpl.h index 383fdd1f4d79d02..c8c47d0e2af8115 \
                100644
--- a/llvm/include/llvm/CodeGen/BasicTTIImpl.h
+++ b/llvm/include/llvm/CodeGen/BasicTTIImpl.h
@@ -44,6 +44,7 @@
 #include "llvm/IR/Value.h"
 #include "llvm/Support/Casting.h"
 #include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/MathExtras.h"
 #include "llvm/Target/TargetMachine.h"
diff --git a/llvm/include/llvm/CodeGen/ByteProvider.h \
b/llvm/include/llvm/CodeGen/ByteProvider.h index e0ba40b1353363e..e634e5e7978e099 \
                100644
--- a/llvm/include/llvm/CodeGen/ByteProvider.h
+++ b/llvm/include/llvm/CodeGen/ByteProvider.h
@@ -17,6 +17,7 @@
 #ifndef LLVM_CODEGEN_BYTEPROVIDER_H
 #define LLVM_CODEGEN_BYTEPROVIDER_H
 
+#include "llvm/Support/Compiler.h"
 #include <optional>
 #include <type_traits>
 
diff --git a/llvm/include/llvm/CodeGen/CFIFixup.h \
b/llvm/include/llvm/CodeGen/CFIFixup.h index 40e535106751c9c..f543d6387bb6ad7 100644
--- a/llvm/include/llvm/CodeGen/CFIFixup.h
+++ b/llvm/include/llvm/CodeGen/CFIFixup.h
@@ -16,6 +16,7 @@
 
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/InitializePasses.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class CFIFixup : public MachineFunctionPass {
diff --git a/llvm/include/llvm/CodeGen/CSEConfigBase.h \
b/llvm/include/llvm/CodeGen/CSEConfigBase.h index d3637099c4b6573..a219be9000812a8 \
                100644
--- a/llvm/include/llvm/CodeGen/CSEConfigBase.h
+++ b/llvm/include/llvm/CodeGen/CSEConfigBase.h
@@ -9,6 +9,8 @@
 #ifndef LLVM_CODEGEN_CSECONFIGBASE_H
 #define LLVM_CODEGEN_CSECONFIGBASE_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 // Class representing some configuration that can be done during GlobalISel's
 // CSEInfo analysis. We define it here because TargetPassConfig can't depend on
diff --git a/llvm/include/llvm/CodeGen/CalcSpillWeights.h \
b/llvm/include/llvm/CodeGen/CalcSpillWeights.h index 41b7f10cfc38ac0..9f2fc3acaf42e95 \
                100644
--- a/llvm/include/llvm/CodeGen/CalcSpillWeights.h
+++ b/llvm/include/llvm/CodeGen/CalcSpillWeights.h
@@ -10,6 +10,7 @@
 #define LLVM_CODEGEN_CALCSPILLWEIGHTS_H
 
 #include "llvm/CodeGen/SlotIndexes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/CallingConvLower.h \
b/llvm/include/llvm/CodeGen/CallingConvLower.h index cb88482b94152c0..43b87c1bfabd919 \
                100644
--- a/llvm/include/llvm/CodeGen/CallingConvLower.h
+++ b/llvm/include/llvm/CodeGen/CallingConvLower.h
@@ -19,6 +19,7 @@
 #include "llvm/CodeGen/TargetCallingConv.h"
 #include "llvm/IR/CallingConv.h"
 #include "llvm/Support/Alignment.h"
+#include "llvm/Support/Compiler.h"
 #include <variant>
 #include <vector>
 
diff --git a/llvm/include/llvm/CodeGen/CodeGenCommonISel.h \
b/llvm/include/llvm/CodeGen/CodeGenCommonISel.h index \
                90ef890f22d1b1d..d7c627b23d49235 100644
--- a/llvm/include/llvm/CodeGen/CodeGenCommonISel.h
+++ b/llvm/include/llvm/CodeGen/CodeGenCommonISel.h
@@ -15,6 +15,7 @@
 #define LLVM_CODEGEN_CODEGENCOMMONISEL_H
 
 #include "llvm/CodeGen/MachineBasicBlock.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/CodeGenPassBuilder.h \
b/llvm/include/llvm/CodeGen/CodeGenPassBuilder.h index \
                ab1219328a5d498..cf219388926a854 100644
--- a/llvm/include/llvm/CodeGen/CodeGenPassBuilder.h
+++ b/llvm/include/llvm/CodeGen/CodeGenPassBuilder.h
@@ -33,6 +33,7 @@
 #include "llvm/MC/MCAsmInfo.h"
 #include "llvm/MC/MCTargetOptions.h"
 #include "llvm/Support/CodeGen.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/ErrorHandling.h"
diff --git a/llvm/include/llvm/CodeGen/CommandFlags.h \
b/llvm/include/llvm/CodeGen/CommandFlags.h index 27794eb63de0b3d..cc8d34a0ee75a74 \
                100644
--- a/llvm/include/llvm/CodeGen/CommandFlags.h
+++ b/llvm/include/llvm/CodeGen/CommandFlags.h
@@ -17,6 +17,7 @@
 
 #include "llvm/ADT/FloatingPointMode.h"
 #include "llvm/Support/CodeGen.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Target/TargetOptions.h"
 #include <optional>
 #include <string>
diff --git a/llvm/include/llvm/CodeGen/ComplexDeinterleavingPass.h \
b/llvm/include/llvm/CodeGen/ComplexDeinterleavingPass.h index \
                84a2673fecb5bf3..a330108a7fa2ff6 100644
--- a/llvm/include/llvm/CodeGen/ComplexDeinterleavingPass.h
+++ b/llvm/include/llvm/CodeGen/ComplexDeinterleavingPass.h
@@ -15,6 +15,7 @@
 #define LLVM_CODEGEN_COMPLEXDEINTERLEAVING_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/CostTable.h \
b/llvm/include/llvm/CodeGen/CostTable.h index ca0cbdda3b11489..66b557870407931 100644
--- a/llvm/include/llvm/CodeGen/CostTable.h
+++ b/llvm/include/llvm/CodeGen/CostTable.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/CodeGen/MachineValueType.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/DFAPacketizer.h \
b/llvm/include/llvm/CodeGen/DFAPacketizer.h index a7a2dfdf09506c0..7934e72dabee5d8 \
                100644
--- a/llvm/include/llvm/CodeGen/DFAPacketizer.h
+++ b/llvm/include/llvm/CodeGen/DFAPacketizer.h
@@ -29,6 +29,7 @@
 #include "llvm/CodeGen/ScheduleDAGInstrs.h"
 #include "llvm/CodeGen/ScheduleDAGMutation.h"
 #include "llvm/Support/Automaton.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <map>
 #include <memory>
diff --git a/llvm/include/llvm/CodeGen/DIE.h b/llvm/include/llvm/CodeGen/DIE.h
index 952c38cd22dbe6e..7a4adcabec2ef52 100644
--- a/llvm/include/llvm/CodeGen/DIE.h
+++ b/llvm/include/llvm/CodeGen/DIE.h
@@ -24,6 +24,7 @@
 #include "llvm/CodeGen/DwarfStringPoolEntry.h"
 #include "llvm/Support/AlignOf.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 #include <cstdint>
diff --git a/llvm/include/llvm/CodeGen/DbgEntityHistoryCalculator.h \
b/llvm/include/llvm/CodeGen/DbgEntityHistoryCalculator.h index \
                7708df725180b86..f527feaf4cf74d2 100644
--- a/llvm/include/llvm/CodeGen/DbgEntityHistoryCalculator.h
+++ b/llvm/include/llvm/CodeGen/DbgEntityHistoryCalculator.h
@@ -13,6 +13,7 @@
 #include "llvm/ADT/PointerIntPair.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/CodeGen/MachineInstr.h"
+#include "llvm/Support/Compiler.h"
 #include <utility>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/DebugHandlerBase.h \
b/llvm/include/llvm/CodeGen/DebugHandlerBase.h index af25f2544da7172..150708600ce08f2 \
                100644
--- a/llvm/include/llvm/CodeGen/DebugHandlerBase.h
+++ b/llvm/include/llvm/CodeGen/DebugHandlerBase.h
@@ -19,6 +19,7 @@
 #include "llvm/CodeGen/LexicalScopes.h"
 #include "llvm/IR/DebugInfoMetadata.h"
 #include "llvm/IR/DebugLoc.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/DetectDeadLanes.h \
b/llvm/include/llvm/CodeGen/DetectDeadLanes.h index 93c7582dce09f69..713d36c0b2a180e \
                100644
--- a/llvm/include/llvm/CodeGen/DetectDeadLanes.h
+++ b/llvm/include/llvm/CodeGen/DetectDeadLanes.h
@@ -30,6 +30,7 @@
 
 #include "llvm/ADT/BitVector.h"
 #include "llvm/MC/LaneBitmask.h"
+#include "llvm/Support/Compiler.h"
 #include <deque>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/DwarfStringPoolEntry.h \
b/llvm/include/llvm/CodeGen/DwarfStringPoolEntry.h index \
                7822ebf2eb09997..ba7cdd5ebb83616 100644
--- a/llvm/include/llvm/CodeGen/DwarfStringPoolEntry.h
+++ b/llvm/include/llvm/CodeGen/DwarfStringPoolEntry.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/PointerUnion.h"
 #include "llvm/ADT/StringMap.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/EdgeBundles.h \
b/llvm/include/llvm/CodeGen/EdgeBundles.h index b844bd307c19700..e1b1ab9c6d853c3 \
                100644
--- a/llvm/include/llvm/CodeGen/EdgeBundles.h
+++ b/llvm/include/llvm/CodeGen/EdgeBundles.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/IntEqClasses.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/ExecutionDomainFix.h \
b/llvm/include/llvm/CodeGen/ExecutionDomainFix.h index \
                4e2b171c73cc04a..c7e3d89a82565c3 100644
--- a/llvm/include/llvm/CodeGen/ExecutionDomainFix.h
+++ b/llvm/include/llvm/CodeGen/ExecutionDomainFix.h
@@ -27,6 +27,7 @@
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/CodeGen/ReachingDefAnalysis.h"
 #include "llvm/CodeGen/TargetRegisterInfo.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/ExpandReductions.h \
b/llvm/include/llvm/CodeGen/ExpandReductions.h index 91c2507a9e395c3..e838d45b8daf91a \
                100644
--- a/llvm/include/llvm/CodeGen/ExpandReductions.h
+++ b/llvm/include/llvm/CodeGen/ExpandReductions.h
@@ -10,6 +10,7 @@
 #define LLVM_CODEGEN_EXPANDREDUCTIONS_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/ExpandVectorPredication.h \
b/llvm/include/llvm/CodeGen/ExpandVectorPredication.h index \
                b69adb9db260182..a01f93d2d647d28 100644
--- a/llvm/include/llvm/CodeGen/ExpandVectorPredication.h
+++ b/llvm/include/llvm/CodeGen/ExpandVectorPredication.h
@@ -10,6 +10,7 @@
 #define LLVM_CODEGEN_EXPANDVECTORPREDICATION_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/FastISel.h \
b/llvm/include/llvm/CodeGen/FastISel.h index dc2931b40d352c9..c733d782033505f 100644
--- a/llvm/include/llvm/CodeGen/FastISel.h
+++ b/llvm/include/llvm/CodeGen/FastISel.h
@@ -26,6 +26,7 @@
 #include "llvm/IR/DebugLoc.h"
 #include "llvm/IR/DerivedTypes.h"
 #include "llvm/IR/InstrTypes.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <utility>
 
diff --git a/llvm/include/llvm/CodeGen/FaultMaps.h \
b/llvm/include/llvm/CodeGen/FaultMaps.h index c228bb895edd0a0..4e8cb3dacb782e2 100644
--- a/llvm/include/llvm/CodeGen/FaultMaps.h
+++ b/llvm/include/llvm/CodeGen/FaultMaps.h
@@ -10,6 +10,7 @@
 #define LLVM_CODEGEN_FAULTMAPS_H
 
 #include "llvm/MC/MCSymbol.h"
+#include "llvm/Support/Compiler.h"
 #include <map>
 #include <vector>
 
diff --git a/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h \
b/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h index \
                4c17e8dcc41a66e..a40bbd1d973a782 100644
--- a/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h
+++ b/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h
@@ -25,6 +25,7 @@
 #include "llvm/IR/Instructions.h"
 #include "llvm/IR/Type.h"
 #include "llvm/IR/Value.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/KnownBits.h"
 #include <cassert>
 #include <utility>
diff --git a/llvm/include/llvm/CodeGen/GCMetadata.h \
b/llvm/include/llvm/CodeGen/GCMetadata.h index 334c5c23b8facc9..d0eafa664947eb7 \
                100644
--- a/llvm/include/llvm/CodeGen/GCMetadata.h
+++ b/llvm/include/llvm/CodeGen/GCMetadata.h
@@ -39,6 +39,7 @@
 #include "llvm/IR/DebugLoc.h"
 #include "llvm/IR/GCStrategy.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <cstddef>
 #include <cstdint>
diff --git a/llvm/include/llvm/CodeGen/GCMetadataPrinter.h \
b/llvm/include/llvm/CodeGen/GCMetadataPrinter.h index \
                f9527c9f8752e93..1800b527d5ca0dc 100644
--- a/llvm/include/llvm/CodeGen/GCMetadataPrinter.h
+++ b/llvm/include/llvm/CodeGen/GCMetadataPrinter.h
@@ -19,6 +19,7 @@
 #ifndef LLVM_CODEGEN_GCMETADATAPRINTER_H
 #define LLVM_CODEGEN_GCMETADATAPRINTER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Registry.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/CSEInfo.h \
b/llvm/include/llvm/CodeGen/GlobalISel/CSEInfo.h index \
                09d6192a2bd5ce1..38b8b89fbe3e19a 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/CSEInfo.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/CSEInfo.h
@@ -19,6 +19,7 @@
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/Support/Allocator.h"
 #include "llvm/Support/CodeGen.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class MachineBasicBlock;
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/CSEMIRBuilder.h \
b/llvm/include/llvm/CodeGen/GlobalISel/CSEMIRBuilder.h index \
                488df12f13f8df2..0f287e44dae685d 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/CSEMIRBuilder.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/CSEMIRBuilder.h
@@ -13,6 +13,7 @@
 #define LLVM_CODEGEN_GLOBALISEL_CSEMIRBUILDER_H
 
 #include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h \
b/llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h index \
                c8e198157b0827c..1d248ca5e8b17c1 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
@@ -24,6 +24,7 @@
 #include "llvm/IR/CallingConv.h"
 #include "llvm/IR/Type.h"
 #include "llvm/IR/Value.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <cstdint>
 #include <functional>
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/Combiner.h \
b/llvm/include/llvm/CodeGen/GlobalISel/Combiner.h index \
                8c295428afe8880..2db32cfd3d8a2e6 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/Combiner.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/Combiner.h
@@ -15,6 +15,7 @@
 #define LLVM_CODEGEN_GLOBALISEL_COMBINER_H
 
 #include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class MachineRegisterInfo;
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h \
b/llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h index \
                0a9f0e931ae09a4..aadda24bcbb3c7c 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
@@ -22,6 +22,7 @@
 #include "llvm/CodeGen/LowLevelType.h"
 #include "llvm/CodeGen/Register.h"
 #include "llvm/IR/InstrTypes.h"
+#include "llvm/Support/Compiler.h"
 #include <functional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h \
b/llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h index \
                e73f8489497e223..61d7cfe8a3c6517 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_CODEGEN_GLOBALISEL_COMBINERINFO_H
 #define LLVM_CODEGEN_GLOBALISEL_COMBINERINFO_H
 
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h \
b/llvm/include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h index \
                b42deb01f8d091d..dba61a889729b78 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/CodeGen/MachineFunction.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class MachineInstr;
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/GISelKnownBits.h \
b/llvm/include/llvm/CodeGen/GlobalISel/GISelKnownBits.h index \
                eff87c5617d997d..f1de98b0c231f74 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/GISelKnownBits.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/GISelKnownBits.h
@@ -19,6 +19,7 @@
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/CodeGen/Register.h"
 #include "llvm/InitializePasses.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/KnownBits.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h \
b/llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h index \
                3ec6a1da201e2c5..025647e583eaf40 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/GenericMachineInstrs.h \
b/llvm/include/llvm/CodeGen/GlobalISel/GenericMachineInstrs.h index \
                8484d970aff0a9e..2cbd753554bc2a4 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/GenericMachineInstrs.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/GenericMachineInstrs.h
@@ -19,6 +19,7 @@
 #include "llvm/CodeGen/MachineMemOperand.h"
 #include "llvm/CodeGen/TargetOpcodes.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h \
b/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h index \
                4d26af3e3e6d221..3010fda890fcdd0 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h
@@ -28,6 +28,7 @@
 #include "llvm/CodeGen/SwitchLoweringUtils.h"
 #include "llvm/Support/Allocator.h"
 #include "llvm/Support/CodeGen.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 #include <utility>
 
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/InlineAsmLowering.h \
b/llvm/include/llvm/CodeGen/GlobalISel/InlineAsmLowering.h index \
                ac6184877b936ea..eb9e29000480fa4 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/InlineAsmLowering.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/InlineAsmLowering.h
@@ -15,6 +15,7 @@
 #define LLVM_CODEGEN_GLOBALISEL_INLINEASMLOWERING_H
 
 #include "llvm/ADT/ArrayRef.h"
+#include "llvm/Support/Compiler.h"
 #include <functional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelect.h \
b/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelect.h index \
                60c7694725a5acf..7e47adaadd6df22 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelect.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelect.h
@@ -17,6 +17,7 @@
 #include "llvm/CodeGen/MachineFunction.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/Support/CodeGen.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h \
b/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h index \
                1662136cfa94afb..7b42795a675497a 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h
@@ -14,6 +14,7 @@
 #define LLVM_CODEGEN_GLOBALISEL_INSTRUCTIONSELECTOR_H
 
 #include "llvm/CodeGen/GlobalISel/GIMatchTableExecutor.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class InstructionSelector : public GIMatchTableExecutor {
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/LegacyLegalizerInfo.h \
b/llvm/include/llvm/CodeGen/GlobalISel/LegacyLegalizerInfo.h index \
                08233dba2041143..f94aa70f75310bd 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/LegacyLegalizerInfo.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/LegacyLegalizerInfo.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/CodeGen/LowLevelType.h"
 #include "llvm/CodeGen/TargetOpcodes.h"
+#include "llvm/Support/Compiler.h"
 #include <unordered_map>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h \
b/llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h index \
                0f8f5662926d434..b155245d75601a6 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h
@@ -25,6 +25,7 @@
 #include "llvm/CodeGen/MachineRegisterInfo.h"
 #include "llvm/CodeGen/Register.h"
 #include "llvm/IR/Constants.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 
 #define DEBUG_TYPE "legalizer"
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/Legalizer.h \
b/llvm/include/llvm/CodeGen/GlobalISel/Legalizer.h index \
                9f9e435b9ce2732..f6f7ada531e0e56 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/Legalizer.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/Legalizer.h
@@ -25,6 +25,7 @@
 #include "llvm/CodeGen/GlobalISel/GISelKnownBits.h"
 #include "llvm/CodeGen/MachineFunction.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h \
b/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h index \
                a568edd0e640d93..b1ad61036d11fcd 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
@@ -24,6 +24,7 @@
 #include "llvm/CodeGen/GlobalISel/GISelKnownBits.h"
 #include "llvm/CodeGen/RuntimeLibcalls.h"
 #include "llvm/CodeGen/TargetOpcodes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 // Forward declarations.
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h \
b/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h index \
                569b86cca635331..a6081a6aa9eb4c3 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
@@ -23,6 +23,7 @@
 #include "llvm/MC/MCInstrDesc.h"
 #include "llvm/Support/AtomicOrdering.h"
 #include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 #include <tuple>
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/LoadStoreOpt.h \
b/llvm/include/llvm/CodeGen/GlobalISel/LoadStoreOpt.h index \
                5562e76b67f6940..0e84c699c460e85 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/LoadStoreOpt.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/LoadStoreOpt.h
@@ -21,6 +21,7 @@
 #include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
 #include "llvm/CodeGen/MachineFunction.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 // Forward declarations.
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/Localizer.h \
b/llvm/include/llvm/CodeGen/GlobalISel/Localizer.h index \
                b1fcdd207a60a1a..c5908cb1e52f5fd 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/Localizer.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/Localizer.h
@@ -23,6 +23,7 @@
 
 #include "llvm/ADT/SetVector.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 // Forward declarations.
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/LostDebugLocObserver.h \
b/llvm/include/llvm/CodeGen/GlobalISel/LostDebugLocObserver.h index \
                1667d0145b04206..a5c3bf47d304afa 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/LostDebugLocObserver.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/LostDebugLocObserver.h
@@ -14,6 +14,7 @@
 
 #include "llvm/ADT/SmallSet.h"
 #include "llvm/CodeGen/GlobalISel/GISelChangeObserver.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class LostDebugLocObserver : public GISelChangeObserver {
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h \
b/llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h index \
                ea6ed322e9b1927..63aa2b02abb056e 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h
@@ -17,6 +17,7 @@
 #include "llvm/CodeGen/GlobalISel/Utils.h"
 #include "llvm/CodeGen/MachineRegisterInfo.h"
 #include "llvm/IR/InstrTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace MIPatternMatch {
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h \
b/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h index \
                a1ff76487a12ec4..c1e10586c136968 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
@@ -20,6 +20,7 @@
 #include "llvm/CodeGen/TargetOpcodes.h"
 #include "llvm/IR/DebugLoc.h"
 #include "llvm/IR/Module.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h \
b/llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h index \
                609326e28e30744..ccd06dccb5f19b0 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h
@@ -70,6 +70,7 @@
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/CodeGen/MachineOptimizationRemarkEmitter.h"
 #include "llvm/CodeGen/RegisterBankInfo.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 #include <memory>
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/Utils.h \
b/llvm/include/llvm/CodeGen/GlobalISel/Utils.h index d5c1fd8d0d512c0..616c7e511e23f42 \
                100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/Utils.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/Utils.h
@@ -22,6 +22,7 @@
 #include "llvm/IR/DebugLoc.h"
 #include "llvm/Support/Alignment.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/HardwareLoops.h \
b/llvm/include/llvm/CodeGen/HardwareLoops.h index c7b6e0f5ae5670f..809f1725d6144be \
                100644
--- a/llvm/include/llvm/CodeGen/HardwareLoops.h
+++ b/llvm/include/llvm/CodeGen/HardwareLoops.h
@@ -15,6 +15,7 @@
 #define LLVM_CODEGEN_HARDWARELOOPS_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/ISDOpcodes.h \
b/llvm/include/llvm/CodeGen/ISDOpcodes.h index 45ff99b9c973e99..5e7fca70b91c924 \
                100644
--- a/llvm/include/llvm/CodeGen/ISDOpcodes.h
+++ b/llvm/include/llvm/CodeGen/ISDOpcodes.h
@@ -14,6 +14,7 @@
 #define LLVM_CODEGEN_ISDOPCODES_H
 
 #include "llvm/CodeGen/ValueTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/IndirectThunks.h \
b/llvm/include/llvm/CodeGen/IndirectThunks.h index b0a8e3043be5cc4..d1b4be89851dd2c \
                100644
--- a/llvm/include/llvm/CodeGen/IndirectThunks.h
+++ b/llvm/include/llvm/CodeGen/IndirectThunks.h
@@ -18,6 +18,7 @@
 #include "llvm/CodeGen/MachineModuleInfo.h"
 #include "llvm/IR/IRBuilder.h"
 #include "llvm/IR/Module.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/IntrinsicLowering.h \
b/llvm/include/llvm/CodeGen/IntrinsicLowering.h index \
                0b327a34ca098e1..f3213b6639568b7 100644
--- a/llvm/include/llvm/CodeGen/IntrinsicLowering.h
+++ b/llvm/include/llvm/CodeGen/IntrinsicLowering.h
@@ -15,6 +15,8 @@
 #ifndef LLVM_CODEGEN_INTRINSICLOWERING_H
 #define LLVM_CODEGEN_INTRINSICLOWERING_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 class CallInst;
 class DataLayout;
diff --git a/llvm/include/llvm/CodeGen/LatencyPriorityQueue.h \
b/llvm/include/llvm/CodeGen/LatencyPriorityQueue.h index \
                556ef3f8cc788c1..c155af901e7b3c1 100644
--- a/llvm/include/llvm/CodeGen/LatencyPriorityQueue.h
+++ b/llvm/include/llvm/CodeGen/LatencyPriorityQueue.h
@@ -17,6 +17,7 @@
 
 #include "llvm/CodeGen/ScheduleDAG.h"
 #include "llvm/Config/llvm-config.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
   class LatencyPriorityQueue;
diff --git a/llvm/include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h \
b/llvm/include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h index \
                e5794966ce630d0..b8c0b72f0c1dfe2 100644
--- a/llvm/include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h
+++ b/llvm/include/llvm/CodeGen/LazyMachineBlockFrequencyInfo.h
@@ -20,6 +20,7 @@
 #include "llvm/CodeGen/MachineDominators.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/CodeGen/MachineLoopInfo.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 /// This is an alternative analysis pass to MachineBlockFrequencyInfo.
diff --git a/llvm/include/llvm/CodeGen/LexicalScopes.h \
b/llvm/include/llvm/CodeGen/LexicalScopes.h index 9617ba80c13884c..13fd9b30172bffc \
                100644
--- a/llvm/include/llvm/CodeGen/LexicalScopes.h
+++ b/llvm/include/llvm/CodeGen/LexicalScopes.h
@@ -21,6 +21,7 @@
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/IR/DebugInfoMetadata.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <unordered_map>
 #include <utility>
diff --git a/llvm/include/llvm/CodeGen/LiveInterval.h \
b/llvm/include/llvm/CodeGen/LiveInterval.h index 92e35c9a4ab9466..a1d08cfb2212c39 \
                100644
--- a/llvm/include/llvm/CodeGen/LiveInterval.h
+++ b/llvm/include/llvm/CodeGen/LiveInterval.h
@@ -29,6 +29,7 @@
 #include "llvm/CodeGen/SlotIndexes.h"
 #include "llvm/MC/LaneBitmask.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MathExtras.h"
 #include <algorithm>
 #include <cassert>
diff --git a/llvm/include/llvm/CodeGen/LiveIntervalCalc.h \
b/llvm/include/llvm/CodeGen/LiveIntervalCalc.h index b8d67ef8f4e196e..7750ce1b0bb51c5 \
                100644
--- a/llvm/include/llvm/CodeGen/LiveIntervalCalc.h
+++ b/llvm/include/llvm/CodeGen/LiveIntervalCalc.h
@@ -18,6 +18,7 @@
 #define LLVM_CODEGEN_LIVEINTERVALCALC_H
 
 #include "llvm/CodeGen/LiveRangeCalc.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/LiveIntervalUnion.h \
b/llvm/include/llvm/CodeGen/LiveIntervalUnion.h index \
                81003455da4241e..ab77ee5edef4bb7 100644
--- a/llvm/include/llvm/CodeGen/LiveIntervalUnion.h
+++ b/llvm/include/llvm/CodeGen/LiveIntervalUnion.h
@@ -20,6 +20,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/CodeGen/LiveInterval.h"
 #include "llvm/CodeGen/SlotIndexes.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <limits>
 
diff --git a/llvm/include/llvm/CodeGen/LivePhysRegs.h \
b/llvm/include/llvm/CodeGen/LivePhysRegs.h index 76bb34d270a26dc..3f878ffbb6953d4 \
                100644
--- a/llvm/include/llvm/CodeGen/LivePhysRegs.h
+++ b/llvm/include/llvm/CodeGen/LivePhysRegs.h
@@ -34,6 +34,7 @@
 #include "llvm/CodeGen/TargetRegisterInfo.h"
 #include "llvm/MC/MCRegister.h"
 #include "llvm/MC/MCRegisterInfo.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <utility>
 
diff --git a/llvm/include/llvm/CodeGen/LiveRangeCalc.h \
b/llvm/include/llvm/CodeGen/LiveRangeCalc.h index 895ecff18f8925f..393c69d80fba577 \
                100644
--- a/llvm/include/llvm/CodeGen/LiveRangeCalc.h
+++ b/llvm/include/llvm/CodeGen/LiveRangeCalc.h
@@ -31,6 +31,7 @@
 #include "llvm/CodeGen/LiveInterval.h"
 #include "llvm/CodeGen/MachineBasicBlock.h"
 #include "llvm/CodeGen/SlotIndexes.h"
+#include "llvm/Support/Compiler.h"
 #include <utility>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/LiveRangeEdit.h \
b/llvm/include/llvm/CodeGen/LiveRangeEdit.h index 0950c20325fb028..4fc28620f946172 \
                100644
--- a/llvm/include/llvm/CodeGen/LiveRangeEdit.h
+++ b/llvm/include/llvm/CodeGen/LiveRangeEdit.h
@@ -27,6 +27,7 @@
 #include "llvm/CodeGen/MachineRegisterInfo.h"
 #include "llvm/CodeGen/SlotIndexes.h"
 #include "llvm/CodeGen/TargetSubtargetInfo.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/LiveRegMatrix.h \
b/llvm/include/llvm/CodeGen/LiveRegMatrix.h index 2b32308c7c075ef..7dd82e1dce2f803 \
                100644
--- a/llvm/include/llvm/CodeGen/LiveRegMatrix.h
+++ b/llvm/include/llvm/CodeGen/LiveRegMatrix.h
@@ -26,6 +26,7 @@
 #include "llvm/ADT/BitVector.h"
 #include "llvm/CodeGen/LiveIntervalUnion.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/LiveRegUnits.h \
b/llvm/include/llvm/CodeGen/LiveRegUnits.h index a750d5dec546336..8cad162ee16c4dd \
                100644
--- a/llvm/include/llvm/CodeGen/LiveRegUnits.h
+++ b/llvm/include/llvm/CodeGen/LiveRegUnits.h
@@ -19,6 +19,7 @@
 #include "llvm/CodeGen/TargetRegisterInfo.h"
 #include "llvm/MC/LaneBitmask.h"
 #include "llvm/MC/MCRegisterInfo.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/LiveStacks.h \
b/llvm/include/llvm/CodeGen/LiveStacks.h index 2edc2985f0ee664..3958c398e542b72 \
                100644
--- a/llvm/include/llvm/CodeGen/LiveStacks.h
+++ b/llvm/include/llvm/CodeGen/LiveStacks.h
@@ -19,6 +19,7 @@
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/InitializePasses.h"
 #include "llvm/PassRegistry.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <map>
 #include <unordered_map>
diff --git a/llvm/include/llvm/CodeGen/LiveVariables.h \
b/llvm/include/llvm/CodeGen/LiveVariables.h index a1ed3c073251bf8..edc1f122cc9efd9 \
                100644
--- a/llvm/include/llvm/CodeGen/LiveVariables.h
+++ b/llvm/include/llvm/CodeGen/LiveVariables.h
@@ -38,6 +38,7 @@
 #include "llvm/CodeGen/TargetRegisterInfo.h"
 #include "llvm/InitializePasses.h"
 #include "llvm/PassRegistry.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/LoopTraversal.h \
b/llvm/include/llvm/CodeGen/LoopTraversal.h index 93d140cabd0d7f8..4f2aac2fd4ba963 \
                100644
--- a/llvm/include/llvm/CodeGen/LoopTraversal.h
+++ b/llvm/include/llvm/CodeGen/LoopTraversal.h
@@ -19,6 +19,7 @@
 #define LLVM_CODEGEN_LOOPTRAVERSAL_H
 
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/LowLevelType.h \
b/llvm/include/llvm/CodeGen/LowLevelType.h index 2924f475ac85006..88c557efca475b8 \
                100644
--- a/llvm/include/llvm/CodeGen/LowLevelType.h
+++ b/llvm/include/llvm/CodeGen/LowLevelType.h
@@ -28,6 +28,7 @@
 
 #include "llvm/ADT/DenseMapInfo.h"
 #include "llvm/CodeGen/MachineValueType.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include <cassert>
 
diff --git a/llvm/include/llvm/CodeGen/LowLevelTypeUtils.h \
b/llvm/include/llvm/CodeGen/LowLevelTypeUtils.h index \
                5cd8e5412df2604..98a900d4656ef8d 100644
--- a/llvm/include/llvm/CodeGen/LowLevelTypeUtils.h
+++ b/llvm/include/llvm/CodeGen/LowLevelTypeUtils.h
@@ -18,6 +18,7 @@
 
 #include "llvm/CodeGen/LowLevelType.h"
 #include "llvm/CodeGen/ValueTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/MBFIWrapper.h \
b/llvm/include/llvm/CodeGen/MBFIWrapper.h index 714ecc5d4334e40..d8722c6737817fb \
                100644
--- a/llvm/include/llvm/CodeGen/MBFIWrapper.h
+++ b/llvm/include/llvm/CodeGen/MBFIWrapper.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/Support/BlockFrequency.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 #include <optional>
 
diff --git a/llvm/include/llvm/CodeGen/MIRFSDiscriminator.h \
b/llvm/include/llvm/CodeGen/MIRFSDiscriminator.h index \
                da943268dac876b..df4b71415929957 100644
--- a/llvm/include/llvm/CodeGen/MIRFSDiscriminator.h
+++ b/llvm/include/llvm/CodeGen/MIRFSDiscriminator.h
@@ -20,6 +20,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/CodeGen/MachineFunction.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Discriminator.h"
 
 #include <cassert>
diff --git a/llvm/include/llvm/CodeGen/MIRFormatter.h \
b/llvm/include/llvm/CodeGen/MIRFormatter.h index 203d965836f65cf..96fb2bc3ce983af \
                100644
--- a/llvm/include/llvm/CodeGen/MIRFormatter.h
+++ b/llvm/include/llvm/CodeGen/MIRFormatter.h
@@ -14,6 +14,7 @@
 #define LLVM_CODEGEN_MIRFORMATTER_H
 
 #include "llvm/CodeGen/PseudoSourceValue.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 #include <cstdint>
 #include <optional>
diff --git a/llvm/include/llvm/CodeGen/MIRParser/MIParser.h \
b/llvm/include/llvm/CodeGen/MIRParser/MIParser.h index \
                b01a0c7aa073ca5..ec532b7d4273587 100644
--- a/llvm/include/llvm/CodeGen/MIRParser/MIParser.h
+++ b/llvm/include/llvm/CodeGen/MIRParser/MIParser.h
@@ -18,6 +18,7 @@
 #include "llvm/CodeGen/MachineMemOperand.h"
 #include "llvm/CodeGen/Register.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/SMLoc.h"
 #include <utility>
 
diff --git a/llvm/include/llvm/CodeGen/MIRParser/MIRParser.h \
b/llvm/include/llvm/CodeGen/MIRParser/MIRParser.h index \
                e1606e7c0ea72d9..4afd49212c7f895 100644
--- a/llvm/include/llvm/CodeGen/MIRParser/MIRParser.h
+++ b/llvm/include/llvm/CodeGen/MIRParser/MIRParser.h
@@ -19,6 +19,7 @@
 
 #include "llvm/ADT/STLFunctionalExtras.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <functional>
 #include <memory>
 #include <optional>
diff --git a/llvm/include/llvm/CodeGen/MIRPrinter.h \
b/llvm/include/llvm/CodeGen/MIRPrinter.h index 5e94418d5fe066c..330bf39246b179b \
                100644
--- a/llvm/include/llvm/CodeGen/MIRPrinter.h
+++ b/llvm/include/llvm/CodeGen/MIRPrinter.h
@@ -14,6 +14,8 @@
 #ifndef LLVM_CODEGEN_MIRPRINTER_H
 #define LLVM_CODEGEN_MIRPRINTER_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 
 class MachineBasicBlock;
diff --git a/llvm/include/llvm/CodeGen/MIRSampleProfile.h \
b/llvm/include/llvm/CodeGen/MIRSampleProfile.h index 221e966e2b9e088..4bdfd436b73930b \
                100644
--- a/llvm/include/llvm/CodeGen/MIRSampleProfile.h
+++ b/llvm/include/llvm/CodeGen/MIRSampleProfile.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/IntrusiveRefCntPtr.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Discriminator.h"
 #include <memory>
 #include <string>
diff --git a/llvm/include/llvm/CodeGen/MIRYamlMapping.h \
b/llvm/include/llvm/CodeGen/MIRYamlMapping.h index 16e773c18641819..f1a364ec2c3dd06 \
                100644
--- a/llvm/include/llvm/CodeGen/MIRYamlMapping.h
+++ b/llvm/include/llvm/CodeGen/MIRYamlMapping.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/CodeGen/MachineJumpTableInfo.h"
 #include "llvm/CodeGen/TargetFrameLowering.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/SMLoc.h"
 #include "llvm/Support/YAMLTraits.h"
 #include "llvm/Support/raw_ostream.h"
diff --git a/llvm/include/llvm/CodeGen/MachineBasicBlock.h \
b/llvm/include/llvm/CodeGen/MachineBasicBlock.h index \
                1c5137f305b6b3c..04fea37dff47cfd 100644
--- a/llvm/include/llvm/CodeGen/MachineBasicBlock.h
+++ b/llvm/include/llvm/CodeGen/MachineBasicBlock.h
@@ -22,6 +22,7 @@
 #include "llvm/IR/DebugLoc.h"
 #include "llvm/MC/LaneBitmask.h"
 #include "llvm/Support/BranchProbability.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 #include <iterator>
diff --git a/llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.h \
b/llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.h index \
                6d58c7a14fb95ac..cf1122eefcb6d50 100644
--- a/llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.h
+++ b/llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.h
@@ -15,6 +15,7 @@
 
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/Support/BlockFrequency.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <memory>
 #include <optional>
diff --git a/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h \
b/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h index \
                bd544421bc0ff6d..38c55feee854a43 100644
--- a/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
+++ b/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
@@ -16,6 +16,7 @@
 #include "llvm/CodeGen/MachineBasicBlock.h"
 #include "llvm/Pass.h"
 #include "llvm/Support/BranchProbability.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/MachineCFGPrinter.h \
b/llvm/include/llvm/CodeGen/MachineCFGPrinter.h index \
                ea3ff5a5c828b92..92d091d589b0c88 100644
--- a/llvm/include/llvm/CodeGen/MachineCFGPrinter.h
+++ b/llvm/include/llvm/CodeGen/MachineCFGPrinter.h
@@ -12,6 +12,7 @@
 #include "llvm/CodeGen/MachineBasicBlock.h"
 #include "llvm/CodeGen/MachineFunction.h"
 #include "llvm/CodeGen/MachineInstr.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DOTGraphTraits.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/MachineConstantPool.h \
b/llvm/include/llvm/CodeGen/MachineConstantPool.h index \
                a9bc0ce300b22d4..d362eeb17b4b824 100644
--- a/llvm/include/llvm/CodeGen/MachineConstantPool.h
+++ b/llvm/include/llvm/CodeGen/MachineConstantPool.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/DenseSet.h"
 #include "llvm/MC/SectionKind.h"
 #include "llvm/Support/Alignment.h"
+#include "llvm/Support/Compiler.h"
 #include <climits>
 #include <vector>
 
diff --git a/llvm/include/llvm/CodeGen/MachineCycleAnalysis.h \
b/llvm/include/llvm/CodeGen/MachineCycleAnalysis.h index \
                1c210632f9e1a5f..86f2066f42699c3 100644
--- a/llvm/include/llvm/CodeGen/MachineCycleAnalysis.h
+++ b/llvm/include/llvm/CodeGen/MachineCycleAnalysis.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/GenericCycleInfo.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/CodeGen/MachineSSAContext.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/MachineDominanceFrontier.h \
b/llvm/include/llvm/CodeGen/MachineDominanceFrontier.h index \
                e3e679608784a44..807b4e8b0c092be 100644
--- a/llvm/include/llvm/CodeGen/MachineDominanceFrontier.h
+++ b/llvm/include/llvm/CodeGen/MachineDominanceFrontier.h
@@ -13,6 +13,7 @@
 #include "llvm/Analysis/DominanceFrontierImpl.h"
 #include "llvm/CodeGen/MachineBasicBlock.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/GenericDomTree.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/MachineDominators.h \
b/llvm/include/llvm/CodeGen/MachineDominators.h index \
                30c18ef410fab3d..891d9e15ae23399 100644
--- a/llvm/include/llvm/CodeGen/MachineDominators.h
+++ b/llvm/include/llvm/CodeGen/MachineDominators.h
@@ -20,6 +20,7 @@
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/CodeGen/MachineInstr.h"
 #include "llvm/CodeGen/MachineInstrBundleIterator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/GenericDomTree.h"
 #include "llvm/Support/GenericDomTreeConstruction.h"
 #include <cassert>
diff --git a/llvm/include/llvm/CodeGen/MachineFrameInfo.h \
b/llvm/include/llvm/CodeGen/MachineFrameInfo.h index 7d11d63d4066f4a..a500dc535d41bd5 \
                100644
--- a/llvm/include/llvm/CodeGen/MachineFrameInfo.h
+++ b/llvm/include/llvm/CodeGen/MachineFrameInfo.h
@@ -17,6 +17,7 @@
 #include "llvm/CodeGen/Register.h"
 #include "llvm/CodeGen/TargetFrameLowering.h"
 #include "llvm/Support/Alignment.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <vector>
 
diff --git a/llvm/include/llvm/CodeGen/MachineFunctionPass.h \
b/llvm/include/llvm/CodeGen/MachineFunctionPass.h index \
                caaf22c2139e31a..fa92103d414b060 100644
--- a/llvm/include/llvm/CodeGen/MachineFunctionPass.h
+++ b/llvm/include/llvm/CodeGen/MachineFunctionPass.h
@@ -20,6 +20,7 @@
 
 #include "llvm/CodeGen/MachineFunction.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/MachineInstr.h \
b/llvm/include/llvm/CodeGen/MachineInstr.h index 2928ccfbcef72dd..17f8c07c439a07d \
                100644
--- a/llvm/include/llvm/CodeGen/MachineInstr.h
+++ b/llvm/include/llvm/CodeGen/MachineInstr.h
@@ -29,6 +29,7 @@
 #include "llvm/MC/MCInstrDesc.h"
 #include "llvm/MC/MCSymbol.h"
 #include "llvm/Support/ArrayRecycler.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MathExtras.h"
 #include "llvm/Support/TrailingObjects.h"
 #include <algorithm>
diff --git a/llvm/include/llvm/CodeGen/MachineInstrBuilder.h \
b/llvm/include/llvm/CodeGen/MachineInstrBuilder.h index \
                c35bdc0c2b44a1b..622f9898fb93845 100644
--- a/llvm/include/llvm/CodeGen/MachineInstrBuilder.h
+++ b/llvm/include/llvm/CodeGen/MachineInstrBuilder.h
@@ -28,6 +28,7 @@
 #include "llvm/CodeGen/TargetRegisterInfo.h"
 #include "llvm/IR/InstrTypes.h"
 #include "llvm/IR/Intrinsics.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <cassert>
 #include <cstdint>
diff --git a/llvm/include/llvm/CodeGen/MachineInstrBundle.h \
b/llvm/include/llvm/CodeGen/MachineInstrBundle.h index \
                9685d1fd8a3e087..ea1943f1810e399 100644
--- a/llvm/include/llvm/CodeGen/MachineInstrBundle.h
+++ b/llvm/include/llvm/CodeGen/MachineInstrBundle.h
@@ -15,6 +15,7 @@
 #define LLVM_CODEGEN_MACHINEINSTRBUNDLE_H
 
 #include "llvm/CodeGen/MachineBasicBlock.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h \
b/llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h index \
                250cb0d78a68f33..68c73850b5d6ba9 100644
--- a/llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
+++ b/llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/ilist.h"
 #include "llvm/ADT/simple_ilist.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <iterator>
 #include <type_traits>
diff --git a/llvm/include/llvm/CodeGen/MachineJumpTableInfo.h \
b/llvm/include/llvm/CodeGen/MachineJumpTableInfo.h index \
                1d082bd03e5b5e0..9ba3e2d6292af36 100644
--- a/llvm/include/llvm/CodeGen/MachineJumpTableInfo.h
+++ b/llvm/include/llvm/CodeGen/MachineJumpTableInfo.h
@@ -19,6 +19,7 @@
 #ifndef LLVM_CODEGEN_MACHINEJUMPTABLEINFO_H
 #define LLVM_CODEGEN_MACHINEJUMPTABLEINFO_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Printable.h"
 #include <cassert>
 #include <vector>
diff --git a/llvm/include/llvm/CodeGen/MachineLoopInfo.h \
b/llvm/include/llvm/CodeGen/MachineLoopInfo.h index cf8d1f17bde7687..d40be0a7d8d1bc8 \
                100644
--- a/llvm/include/llvm/CodeGen/MachineLoopInfo.h
+++ b/llvm/include/llvm/CodeGen/MachineLoopInfo.h
@@ -32,6 +32,7 @@
 #include "llvm/CodeGen/MachineBasicBlock.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/IR/DebugLoc.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/GenericLoopInfo.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/MachineLoopUtils.h \
b/llvm/include/llvm/CodeGen/MachineLoopUtils.h index b9bf93b71e25c2c..022f9a69fafb789 \
                100644
--- a/llvm/include/llvm/CodeGen/MachineLoopUtils.h
+++ b/llvm/include/llvm/CodeGen/MachineLoopUtils.h
@@ -9,6 +9,8 @@
 #ifndef LLVM_CODEGEN_MACHINELOOPUTILS_H
 #define LLVM_CODEGEN_MACHINELOOPUTILS_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 class MachineBasicBlock;
 class MachineRegisterInfo;
diff --git a/llvm/include/llvm/CodeGen/MachineMemOperand.h \
b/llvm/include/llvm/CodeGen/MachineMemOperand.h index \
                da7fd7cdf02958d..93e1ba1b1009eb9 100644
--- a/llvm/include/llvm/CodeGen/MachineMemOperand.h
+++ b/llvm/include/llvm/CodeGen/MachineMemOperand.h
@@ -22,6 +22,7 @@
 #include "llvm/IR/DerivedTypes.h"
 #include "llvm/IR/Value.h" // PointerLikeTypeTraits<Value*>
 #include "llvm/Support/AtomicOrdering.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/MachineModuleInfo.h \
b/llvm/include/llvm/CodeGen/MachineModuleInfo.h index \
                4f0ada3d7e17aa1..f629643b1bf14f0 100644
--- a/llvm/include/llvm/CodeGen/MachineModuleInfo.h
+++ b/llvm/include/llvm/CodeGen/MachineModuleInfo.h
@@ -36,6 +36,7 @@
 #include "llvm/MC/MCContext.h"
 #include "llvm/MC/MCSymbol.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 #include <utility>
 #include <vector>
diff --git a/llvm/include/llvm/CodeGen/MachineModuleInfoImpls.h \
b/llvm/include/llvm/CodeGen/MachineModuleInfoImpls.h index \
                58f7163d7b81986..0a2c820df98ba93 100644
--- a/llvm/include/llvm/CodeGen/MachineModuleInfoImpls.h
+++ b/llvm/include/llvm/CodeGen/MachineModuleInfoImpls.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/StringSet.h"
 #include "llvm/CodeGen/MachineModuleInfo.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/MachineModuleSlotTracker.h \
b/llvm/include/llvm/CodeGen/MachineModuleSlotTracker.h index \
                fc7635edd82c79f..19dbeeec0aec505 100644
--- a/llvm/include/llvm/CodeGen/MachineModuleSlotTracker.h
+++ b/llvm/include/llvm/CodeGen/MachineModuleSlotTracker.h
@@ -10,6 +10,7 @@
 #define LLVM_CODEGEN_MACHINEMODULESLOTTRACKER_H
 
 #include "llvm/IR/ModuleSlotTracker.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/MachineOperand.h \
b/llvm/include/llvm/CodeGen/MachineOperand.h index 1f3b7feedd1897f..c7c6e609f75e0bf \
                100644
--- a/llvm/include/llvm/CodeGen/MachineOperand.h
+++ b/llvm/include/llvm/CodeGen/MachineOperand.h
@@ -16,6 +16,7 @@
 #include "llvm/ADT/DenseMapInfo.h"
 #include "llvm/CodeGen/Register.h"
 #include "llvm/IR/Intrinsics.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h \
b/llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h index \
                2b177e6763d39e5..45728b8f3f2ceb7 100644
--- a/llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h
+++ b/llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h
@@ -18,6 +18,7 @@
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/IR/DiagnosticInfo.h"
 #include "llvm/IR/Function.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/MachineOutliner.h \
b/llvm/include/llvm/CodeGen/MachineOutliner.h index d0ff02fea4ff9b7..88d7ca3b3f3cd72 \
                100644
--- a/llvm/include/llvm/CodeGen/MachineOutliner.h
+++ b/llvm/include/llvm/CodeGen/MachineOutliner.h
@@ -18,6 +18,7 @@
 #include "llvm/CodeGen/LiveRegUnits.h"
 #include "llvm/CodeGen/MachineFunction.h"
 #include "llvm/CodeGen/MachineRegisterInfo.h"
+#include "llvm/Support/Compiler.h"
 #include <initializer_list>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/MachinePassManager.h \
b/llvm/include/llvm/CodeGen/MachinePassManager.h index \
                5dc0e2918d4695d..77174c23bd4fcb6 100644
--- a/llvm/include/llvm/CodeGen/MachinePassManager.h
+++ b/llvm/include/llvm/CodeGen/MachinePassManager.h
@@ -26,6 +26,7 @@
 #include "llvm/ADT/FunctionExtras.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 #include <map>
diff --git a/llvm/include/llvm/CodeGen/MachinePassRegistry.h \
b/llvm/include/llvm/CodeGen/MachinePassRegistry.h index \
                f5b3723db0aabeb..e6bcf2f3994cb50 100644
--- a/llvm/include/llvm/CodeGen/MachinePassRegistry.h
+++ b/llvm/include/llvm/CodeGen/MachinePassRegistry.h
@@ -20,6 +20,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/CodeGen/Passes.h"
 #include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/MachinePipeliner.h \
b/llvm/include/llvm/CodeGen/MachinePipeliner.h index 04055ba9732dd44..12cd22116d719d6 \
                100644
--- a/llvm/include/llvm/CodeGen/MachinePipeliner.h
+++ b/llvm/include/llvm/CodeGen/MachinePipeliner.h
@@ -49,6 +49,7 @@
 #include "llvm/CodeGen/ScheduleDAGMutation.h"
 #include "llvm/CodeGen/TargetInstrInfo.h"
 #include "llvm/InitializePasses.h"
+#include "llvm/Support/Compiler.h"
 
 #include <deque>
 
diff --git a/llvm/include/llvm/CodeGen/MachinePostDominators.h \
b/llvm/include/llvm/CodeGen/MachinePostDominators.h index \
                cee4294f6317b0c..05543581f2695fb 100644
--- a/llvm/include/llvm/CodeGen/MachinePostDominators.h
+++ b/llvm/include/llvm/CodeGen/MachinePostDominators.h
@@ -16,6 +16,7 @@
 
 #include "llvm/CodeGen/MachineDominators.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/MachineRegionInfo.h \
b/llvm/include/llvm/CodeGen/MachineRegionInfo.h index \
                eeb69fef2c6b939..381fe855ec73748 100644
--- a/llvm/include/llvm/CodeGen/MachineRegionInfo.h
+++ b/llvm/include/llvm/CodeGen/MachineRegionInfo.h
@@ -18,6 +18,7 @@
 #include "llvm/CodeGen/MachineFunction.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/CodeGen/MachineLoopInfo.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/MachineRegisterInfo.h \
b/llvm/include/llvm/CodeGen/MachineRegisterInfo.h index \
                496224a85c52c3d..65f94fabb52e623 100644
--- a/llvm/include/llvm/CodeGen/MachineRegisterInfo.h
+++ b/llvm/include/llvm/CodeGen/MachineRegisterInfo.h
@@ -29,6 +29,7 @@
 #include "llvm/CodeGen/TargetRegisterInfo.h"
 #include "llvm/CodeGen/TargetSubtargetInfo.h"
 #include "llvm/MC/LaneBitmask.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 #include <cstdint>
diff --git a/llvm/include/llvm/CodeGen/MachineSSAContext.h \
b/llvm/include/llvm/CodeGen/MachineSSAContext.h index \
                3bf0f728907eca7..6d0c24f1f450846 100644
--- a/llvm/include/llvm/CodeGen/MachineSSAContext.h
+++ b/llvm/include/llvm/CodeGen/MachineSSAContext.h
@@ -16,6 +16,7 @@
 #define LLVM_CODEGEN_MACHINESSACONTEXT_H
 
 #include "llvm/CodeGen/MachineBasicBlock.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Printable.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/MachineSSAUpdater.h \
b/llvm/include/llvm/CodeGen/MachineSSAUpdater.h index \
                bbd09d7d151ba07..d522a5b45fd9751 100644
--- a/llvm/include/llvm/CodeGen/MachineSSAUpdater.h
+++ b/llvm/include/llvm/CodeGen/MachineSSAUpdater.h
@@ -14,6 +14,7 @@
 #define LLVM_CODEGEN_MACHINESSAUPDATER_H
 
 #include "llvm/CodeGen/Register.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/MachineScheduler.h \
b/llvm/include/llvm/CodeGen/MachineScheduler.h index c950a9ac5c38793..c6b9fb3756c9064 \
                100644
--- a/llvm/include/llvm/CodeGen/MachineScheduler.h
+++ b/llvm/include/llvm/CodeGen/MachineScheduler.h
@@ -89,6 +89,7 @@
 #include "llvm/CodeGen/ScheduleDAGMutation.h"
 #include "llvm/CodeGen/TargetSchedule.h"
 #include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <algorithm>
 #include <cassert>
diff --git a/llvm/include/llvm/CodeGen/MachineSizeOpts.h \
b/llvm/include/llvm/CodeGen/MachineSizeOpts.h index 550508ad7a233fb..76ddb7175b6a13a \
                100644
--- a/llvm/include/llvm/CodeGen/MachineSizeOpts.h
+++ b/llvm/include/llvm/CodeGen/MachineSizeOpts.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_CODEGEN_MACHINESIZEOPTS_H
 #define LLVM_CODEGEN_MACHINESIZEOPTS_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Transforms/Utils/SizeOpts.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/MachineStableHash.h \
b/llvm/include/llvm/CodeGen/MachineStableHash.h index \
                43571b7b8afd212..da73311573211b4 100644
--- a/llvm/include/llvm/CodeGen/MachineStableHash.h
+++ b/llvm/include/llvm/CodeGen/MachineStableHash.h
@@ -15,6 +15,7 @@
 #define LLVM_CODEGEN_MACHINESTABLEHASH_H
 
 #include "llvm/CodeGen/StableHashing.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class MachineBasicBlock;
diff --git a/llvm/include/llvm/CodeGen/MachineTraceMetrics.h \
b/llvm/include/llvm/CodeGen/MachineTraceMetrics.h index \
                63e4210b2a860e7..4e0a56e14494591 100644
--- a/llvm/include/llvm/CodeGen/MachineTraceMetrics.h
+++ b/llvm/include/llvm/CodeGen/MachineTraceMetrics.h
@@ -53,6 +53,7 @@
 #include "llvm/CodeGen/MachineBasicBlock.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/CodeGen/TargetSchedule.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/MachineUniformityAnalysis.h \
b/llvm/include/llvm/CodeGen/MachineUniformityAnalysis.h index \
                e6da099751e7ae5..63417cdf6571532 100644
--- a/llvm/include/llvm/CodeGen/MachineUniformityAnalysis.h
+++ b/llvm/include/llvm/CodeGen/MachineUniformityAnalysis.h
@@ -18,6 +18,7 @@
 #include "llvm/CodeGen/MachineCycleAnalysis.h"
 #include "llvm/CodeGen/MachineDominators.h"
 #include "llvm/CodeGen/MachineSSAContext.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/MachineValueType.h \
b/llvm/include/llvm/CodeGen/MachineValueType.h index d7dc38c7bd9885a..17f017522d9e8c2 \
                100644
--- a/llvm/include/llvm/CodeGen/MachineValueType.h
+++ b/llvm/include/llvm/CodeGen/MachineValueType.h
@@ -17,6 +17,7 @@
 #define LLVM_CODEGEN_MACHINEVALUETYPE_H
 
 #include "llvm/ADT/Sequence.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/MathExtras.h"
 #include "llvm/Support/TypeSize.h"
diff --git a/llvm/include/llvm/CodeGen/MacroFusion.h \
b/llvm/include/llvm/CodeGen/MacroFusion.h index ea2c7a5faae385a..c8246fcf2e3fb68 \
                100644
--- a/llvm/include/llvm/CodeGen/MacroFusion.h
+++ b/llvm/include/llvm/CodeGen/MacroFusion.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_CODEGEN_MACROFUSION_H
 #define LLVM_CODEGEN_MACROFUSION_H
 
+#include "llvm/Support/Compiler.h"
 #include <functional>
 #include <memory>
 
diff --git a/llvm/include/llvm/CodeGen/ModuloSchedule.h \
b/llvm/include/llvm/CodeGen/ModuloSchedule.h index d03f7b4959159e4..77ca6ff696b6ac9 \
                100644
--- a/llvm/include/llvm/CodeGen/ModuloSchedule.h
+++ b/llvm/include/llvm/CodeGen/ModuloSchedule.h
@@ -64,6 +64,7 @@
 #include "llvm/CodeGen/MachineLoopUtils.h"
 #include "llvm/CodeGen/TargetInstrInfo.h"
 #include "llvm/CodeGen/TargetSubtargetInfo.h"
+#include "llvm/Support/Compiler.h"
 #include <deque>
 #include <vector>
 
diff --git a/llvm/include/llvm/CodeGen/MultiHazardRecognizer.h \
b/llvm/include/llvm/CodeGen/MultiHazardRecognizer.h index \
                9846045ff014bbc..987ad742bfe05ee 100644
--- a/llvm/include/llvm/CodeGen/MultiHazardRecognizer.h
+++ b/llvm/include/llvm/CodeGen/MultiHazardRecognizer.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/CodeGen/ScheduleHazardRecognizer.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/NonRelocatableStringpool.h \
b/llvm/include/llvm/CodeGen/NonRelocatableStringpool.h index \
                fe07c70d85c597e..a03846d05d6b2ad 100644
--- a/llvm/include/llvm/CodeGen/NonRelocatableStringpool.h
+++ b/llvm/include/llvm/CodeGen/NonRelocatableStringpool.h
@@ -11,6 +11,7 @@
 
 #include "llvm/CodeGen/DwarfStringPoolEntry.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <vector>
 
diff --git a/llvm/include/llvm/CodeGen/PBQP/CostAllocator.h \
b/llvm/include/llvm/CodeGen/PBQP/CostAllocator.h index \
                7a8ee691c034f0f..7e28d04663d961b 100644
--- a/llvm/include/llvm/CodeGen/PBQP/CostAllocator.h
+++ b/llvm/include/llvm/CodeGen/PBQP/CostAllocator.h
@@ -18,6 +18,7 @@
 #define LLVM_CODEGEN_PBQP_COSTALLOCATOR_H
 
 #include "llvm/ADT/DenseSet.h"
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <cstdint>
 #include <memory>
diff --git a/llvm/include/llvm/CodeGen/PBQP/Graph.h \
b/llvm/include/llvm/CodeGen/PBQP/Graph.h index 5c802802a880427..142bfa1461a0850 \
                100644
--- a/llvm/include/llvm/CodeGen/PBQP/Graph.h
+++ b/llvm/include/llvm/CodeGen/PBQP/Graph.h
@@ -14,6 +14,7 @@
 #define LLVM_CODEGEN_PBQP_GRAPH_H
 
 #include "llvm/ADT/STLExtras.h"
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <cassert>
 #include <iterator>
diff --git a/llvm/include/llvm/CodeGen/PBQP/Math.h \
b/llvm/include/llvm/CodeGen/PBQP/Math.h index 099ba788e9a2d8c..b9d45848f1267be 100644
--- a/llvm/include/llvm/CodeGen/PBQP/Math.h
+++ b/llvm/include/llvm/CodeGen/PBQP/Math.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/Hashing.h"
 #include "llvm/ADT/STLExtras.h"
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <cassert>
 #include <functional>
diff --git a/llvm/include/llvm/CodeGen/PBQP/Solution.h \
b/llvm/include/llvm/CodeGen/PBQP/Solution.h index d5b1474f0f4c7ea..de2abef047ce87f \
                100644
--- a/llvm/include/llvm/CodeGen/PBQP/Solution.h
+++ b/llvm/include/llvm/CodeGen/PBQP/Solution.h
@@ -14,6 +14,7 @@
 #define LLVM_CODEGEN_PBQP_SOLUTION_H
 
 #include "llvm/CodeGen/PBQP/Graph.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <map>
 
diff --git a/llvm/include/llvm/CodeGen/PBQPRAConstraint.h \
b/llvm/include/llvm/CodeGen/PBQPRAConstraint.h index 876ab97a669fd6e..a683bff1ff9e807 \
                100644
--- a/llvm/include/llvm/CodeGen/PBQPRAConstraint.h
+++ b/llvm/include/llvm/CodeGen/PBQPRAConstraint.h
@@ -15,6 +15,7 @@
 #ifndef LLVM_CODEGEN_PBQPRACONSTRAINT_H
 #define LLVM_CODEGEN_PBQPRACONSTRAINT_H
 
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <memory>
 #include <vector>
diff --git a/llvm/include/llvm/CodeGen/ParallelCG.h \
b/llvm/include/llvm/CodeGen/ParallelCG.h index 70ce2ff474213b4..df72be4c5841bf0 \
                100644
--- a/llvm/include/llvm/CodeGen/ParallelCG.h
+++ b/llvm/include/llvm/CodeGen/ParallelCG.h
@@ -14,6 +14,7 @@
 #define LLVM_CODEGEN_PARALLELCG_H
 
 #include "llvm/Support/CodeGen.h"
+#include "llvm/Support/Compiler.h"
 #include <functional>
 #include <memory>
 
diff --git a/llvm/include/llvm/CodeGen/Passes.h b/llvm/include/llvm/CodeGen/Passes.h
index 11bc1d48a93d7c9..088e1653816f666 100644
--- a/llvm/include/llvm/CodeGen/Passes.h
+++ b/llvm/include/llvm/CodeGen/Passes.h
@@ -15,6 +15,7 @@
 #define LLVM_CODEGEN_PASSES_H
 
 #include "llvm/Support/CodeGen.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Discriminator.h"
 #include "llvm/CodeGen/RegAllocCommon.h"
 
diff --git a/llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h \
b/llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h index \
                73d7d779e55b673..97d3b2e1229b1bb 100644
--- a/llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h
+++ b/llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h
@@ -14,6 +14,7 @@
 #define LLVM_CODEGEN_PREISELINTRINSICLOWERING_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/PseudoSourceValue.h \
b/llvm/include/llvm/CodeGen/PseudoSourceValue.h index \
                07b7ba32156698d..bffa2dd57851f66 100644
--- a/llvm/include/llvm/CodeGen/PseudoSourceValue.h
+++ b/llvm/include/llvm/CodeGen/PseudoSourceValue.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/StringMap.h"
 #include "llvm/IR/ValueMap.h"
+#include "llvm/Support/Compiler.h"
 #include <map>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/RDFGraph.h \
b/llvm/include/llvm/CodeGen/RDFGraph.h index cf7344e8c3e7465..1e9ccc812ff1fa1 100644
--- a/llvm/include/llvm/CodeGen/RDFGraph.h
+++ b/llvm/include/llvm/CodeGen/RDFGraph.h
@@ -229,6 +229,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/MC/LaneBitmask.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MathExtras.h"
 #include <cassert>
 #include <cstdint>
diff --git a/llvm/include/llvm/CodeGen/RDFLiveness.h \
b/llvm/include/llvm/CodeGen/RDFLiveness.h index fe1034f9b6f8efa..4091769fab938e2 \
                100644
--- a/llvm/include/llvm/CodeGen/RDFLiveness.h
+++ b/llvm/include/llvm/CodeGen/RDFLiveness.h
@@ -16,6 +16,7 @@
 #include "RDFRegisters.h"
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/MC/LaneBitmask.h"
+#include "llvm/Support/Compiler.h"
 #include <map>
 #include <set>
 #include <unordered_map>
diff --git a/llvm/include/llvm/CodeGen/RDFRegisters.h \
b/llvm/include/llvm/CodeGen/RDFRegisters.h index 7eed0b4e1e7b8f0..9d8174600f99467 \
                100644
--- a/llvm/include/llvm/CodeGen/RDFRegisters.h
+++ b/llvm/include/llvm/CodeGen/RDFRegisters.h
@@ -15,6 +15,7 @@
 #include "llvm/CodeGen/TargetRegisterInfo.h"
 #include "llvm/MC/LaneBitmask.h"
 #include "llvm/MC/MCRegister.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 #include <map>
diff --git a/llvm/include/llvm/CodeGen/ReachingDefAnalysis.h \
b/llvm/include/llvm/CodeGen/ReachingDefAnalysis.h index \
                ec652f448f0f651..7386af9d54eee4b 100644
--- a/llvm/include/llvm/CodeGen/ReachingDefAnalysis.h
+++ b/llvm/include/llvm/CodeGen/ReachingDefAnalysis.h
@@ -27,6 +27,7 @@
 #include "llvm/CodeGen/LoopTraversal.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/InitializePasses.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/RegAllocPBQP.h \
b/llvm/include/llvm/CodeGen/RegAllocPBQP.h index 1ea8840947bc887..c0cc2726a159211 \
                100644
--- a/llvm/include/llvm/CodeGen/RegAllocPBQP.h
+++ b/llvm/include/llvm/CodeGen/RegAllocPBQP.h
@@ -24,6 +24,7 @@
 #include "llvm/CodeGen/PBQP/Solution.h"
 #include "llvm/CodeGen/Register.h"
 #include "llvm/MC/MCRegister.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <algorithm>
 #include <cassert>
diff --git a/llvm/include/llvm/CodeGen/RegAllocRegistry.h \
b/llvm/include/llvm/CodeGen/RegAllocRegistry.h index cd81e084a859ba9..14fa5861f0cf4ff \
                100644
--- a/llvm/include/llvm/CodeGen/RegAllocRegistry.h
+++ b/llvm/include/llvm/CodeGen/RegAllocRegistry.h
@@ -16,6 +16,7 @@
 
 #include "llvm/CodeGen/RegAllocCommon.h"
 #include "llvm/CodeGen/MachinePassRegistry.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/Register.h \
b/llvm/include/llvm/CodeGen/Register.h index e1456f81d4670f9..f8daf0b4e1e0f4b 100644
--- a/llvm/include/llvm/CodeGen/Register.h
+++ b/llvm/include/llvm/CodeGen/Register.h
@@ -10,6 +10,7 @@
 #define LLVM_CODEGEN_REGISTER_H
 
 #include "llvm/MC/MCRegister.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/RegisterBank.h \
b/llvm/include/llvm/CodeGen/RegisterBank.h index ee295c7cdde0048..56fa270f04a5652 \
                100644
--- a/llvm/include/llvm/CodeGen/RegisterBank.h
+++ b/llvm/include/llvm/CodeGen/RegisterBank.h
@@ -14,6 +14,7 @@
 #define LLVM_CODEGEN_REGISTERBANK_H
 
 #include "llvm/ADT/BitVector.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 // Forward declarations.
diff --git a/llvm/include/llvm/CodeGen/RegisterBankInfo.h \
b/llvm/include/llvm/CodeGen/RegisterBankInfo.h index 60f03756e1b5461..10a4ef06410d454 \
                100644
--- a/llvm/include/llvm/CodeGen/RegisterBankInfo.h
+++ b/llvm/include/llvm/CodeGen/RegisterBankInfo.h
@@ -21,6 +21,7 @@
 #include "llvm/CodeGen/LowLevelType.h"
 #include "llvm/CodeGen/Register.h"
 #include "llvm/CodeGen/RegisterBank.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <cassert>
 #include <initializer_list>
diff --git a/llvm/include/llvm/CodeGen/RegisterClassInfo.h \
b/llvm/include/llvm/CodeGen/RegisterClassInfo.h index \
                0e50d2feb9b2813..e9297a85b1495a6 100644
--- a/llvm/include/llvm/CodeGen/RegisterClassInfo.h
+++ b/llvm/include/llvm/CodeGen/RegisterClassInfo.h
@@ -21,6 +21,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/CodeGen/TargetRegisterInfo.h"
 #include "llvm/MC/MCRegister.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <memory>
 
diff --git a/llvm/include/llvm/CodeGen/RegisterPressure.h \
b/llvm/include/llvm/CodeGen/RegisterPressure.h index 8a46e505affd2fd..b2d0507bcf5b1fd \
                100644
--- a/llvm/include/llvm/CodeGen/RegisterPressure.h
+++ b/llvm/include/llvm/CodeGen/RegisterPressure.h
@@ -21,6 +21,7 @@
 #include "llvm/CodeGen/SlotIndexes.h"
 #include "llvm/CodeGen/TargetRegisterInfo.h"
 #include "llvm/MC/LaneBitmask.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 #include <cstdlib>
diff --git a/llvm/include/llvm/CodeGen/RegisterScavenging.h \
b/llvm/include/llvm/CodeGen/RegisterScavenging.h index \
                21f2d355f237be8..bd7a688e77a34fc 100644
--- a/llvm/include/llvm/CodeGen/RegisterScavenging.h
+++ b/llvm/include/llvm/CodeGen/RegisterScavenging.h
@@ -23,6 +23,7 @@
 #include "llvm/CodeGen/MachineBasicBlock.h"
 #include "llvm/CodeGen/MachineRegisterInfo.h"
 #include "llvm/MC/LaneBitmask.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/RegisterUsageInfo.h \
b/llvm/include/llvm/CodeGen/RegisterUsageInfo.h index \
                aa1f5ef8110b0cf..4b474c4eb8433a0 100644
--- a/llvm/include/llvm/CodeGen/RegisterUsageInfo.h
+++ b/llvm/include/llvm/CodeGen/RegisterUsageInfo.h
@@ -23,6 +23,7 @@
 #include "llvm/InitializePasses.h"
 #include "llvm/Pass.h"
 #include "llvm/PassRegistry.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <vector>
 
diff --git a/llvm/include/llvm/CodeGen/ReplaceWithVeclib.h \
b/llvm/include/llvm/CodeGen/ReplaceWithVeclib.h index \
                c71aca0c992b386..b4d308d890bf2c1 100644
--- a/llvm/include/llvm/CodeGen/ReplaceWithVeclib.h
+++ b/llvm/include/llvm/CodeGen/ReplaceWithVeclib.h
@@ -18,6 +18,7 @@
 #include "llvm/InitializePasses.h"
 #include "llvm/Pass.h"
 #include "llvm/PassRegistry.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Function;
diff --git a/llvm/include/llvm/CodeGen/ResourcePriorityQueue.h \
b/llvm/include/llvm/CodeGen/ResourcePriorityQueue.h index \
                bd63dd8756210fd..41bdd72c4bd5a8e 100644
--- a/llvm/include/llvm/CodeGen/ResourcePriorityQueue.h
+++ b/llvm/include/llvm/CodeGen/ResourcePriorityQueue.h
@@ -17,6 +17,7 @@
 #define LLVM_CODEGEN_RESOURCEPRIORITYQUEUE_H
 
 #include "llvm/CodeGen/ScheduleDAG.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
   class DFAPacketizer;
diff --git a/llvm/include/llvm/CodeGen/RuntimeLibcalls.h \
b/llvm/include/llvm/CodeGen/RuntimeLibcalls.h index 666420681510732..fa2868b993c5705 \
                100644
--- a/llvm/include/llvm/CodeGen/RuntimeLibcalls.h
+++ b/llvm/include/llvm/CodeGen/RuntimeLibcalls.h
@@ -16,6 +16,7 @@
 
 #include "llvm/CodeGen/ValueTypes.h"
 #include "llvm/Support/AtomicOrdering.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace RTLIB {
diff --git a/llvm/include/llvm/CodeGen/ScheduleDAG.h \
b/llvm/include/llvm/CodeGen/ScheduleDAG.h index 89b71167a43a89b..2131f60a796cd67 \
                100644
--- a/llvm/include/llvm/CodeGen/ScheduleDAG.h
+++ b/llvm/include/llvm/CodeGen/ScheduleDAG.h
@@ -21,6 +21,7 @@
 #include "llvm/ADT/iterator.h"
 #include "llvm/CodeGen/MachineInstr.h"
 #include "llvm/CodeGen/TargetLowering.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <cassert>
 #include <cstddef>
diff --git a/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h \
b/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h index \
                5ea68e0a64af9c6..7f23777df1a32db 100644
--- a/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h
+++ b/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h
@@ -26,6 +26,7 @@
 #include "llvm/CodeGen/TargetRegisterInfo.h"
 #include "llvm/CodeGen/TargetSchedule.h"
 #include "llvm/MC/LaneBitmask.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 #include <list>
diff --git a/llvm/include/llvm/CodeGen/ScheduleDAGMutation.h \
b/llvm/include/llvm/CodeGen/ScheduleDAGMutation.h index \
                d1dd72859a380eb..6e68de285f02504 100644
--- a/llvm/include/llvm/CodeGen/ScheduleDAGMutation.h
+++ b/llvm/include/llvm/CodeGen/ScheduleDAGMutation.h
@@ -14,6 +14,8 @@
 #ifndef LLVM_CODEGEN_SCHEDULEDAGMUTATION_H
 #define LLVM_CODEGEN_SCHEDULEDAGMUTATION_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 
 class ScheduleDAGInstrs;
diff --git a/llvm/include/llvm/CodeGen/ScheduleDFS.h \
b/llvm/include/llvm/CodeGen/ScheduleDFS.h index 2e0a30cc56e3cc1..99f33831db9bb8b \
                100644
--- a/llvm/include/llvm/CodeGen/ScheduleDFS.h
+++ b/llvm/include/llvm/CodeGen/ScheduleDFS.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/CodeGen/ScheduleDAG.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 #include <vector>
diff --git a/llvm/include/llvm/CodeGen/ScheduleHazardRecognizer.h \
b/llvm/include/llvm/CodeGen/ScheduleHazardRecognizer.h index \
                9f1101b658d0483..7b02667251862a9 100644
--- a/llvm/include/llvm/CodeGen/ScheduleHazardRecognizer.h
+++ b/llvm/include/llvm/CodeGen/ScheduleHazardRecognizer.h
@@ -14,6 +14,8 @@
 #ifndef LLVM_CODEGEN_SCHEDULEHAZARDRECOGNIZER_H
 #define LLVM_CODEGEN_SCHEDULEHAZARDRECOGNIZER_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 
 class MachineInstr;
diff --git a/llvm/include/llvm/CodeGen/SchedulerRegistry.h \
b/llvm/include/llvm/CodeGen/SchedulerRegistry.h index \
                0ccfaafd9e50255..b06dc1306ced3ab 100644
--- a/llvm/include/llvm/CodeGen/SchedulerRegistry.h
+++ b/llvm/include/llvm/CodeGen/SchedulerRegistry.h
@@ -16,6 +16,7 @@
 
 #include "llvm/CodeGen/MachinePassRegistry.h"
 #include "llvm/Support/CodeGen.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/ScoreboardHazardRecognizer.h \
b/llvm/include/llvm/CodeGen/ScoreboardHazardRecognizer.h index \
                a70acca98a5c464..e449b68a8280c10 100644
--- a/llvm/include/llvm/CodeGen/ScoreboardHazardRecognizer.h
+++ b/llvm/include/llvm/CodeGen/ScoreboardHazardRecognizer.h
@@ -17,6 +17,7 @@
 
 #include "llvm/CodeGen/ScheduleHazardRecognizer.h"
 #include "llvm/MC/MCInstrItineraries.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 #include <cstring>
diff --git a/llvm/include/llvm/CodeGen/SelectionDAG.h \
b/llvm/include/llvm/CodeGen/SelectionDAG.h index 67904a8043a8e6d..cf6ec3c91fa7820 \
                100644
--- a/llvm/include/llvm/CodeGen/SelectionDAG.h
+++ b/llvm/include/llvm/CodeGen/SelectionDAG.h
@@ -37,6 +37,7 @@
 #include "llvm/Support/Allocator.h"
 #include "llvm/Support/ArrayRecycler.h"
 #include "llvm/Support/CodeGen.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/RecyclingAllocator.h"
 #include <cassert>
diff --git a/llvm/include/llvm/CodeGen/SelectionDAGAddressAnalysis.h \
b/llvm/include/llvm/CodeGen/SelectionDAGAddressAnalysis.h index \
                3d0f836b0c75784..0901b195b770b63 100644
--- a/llvm/include/llvm/CodeGen/SelectionDAGAddressAnalysis.h
+++ b/llvm/include/llvm/CodeGen/SelectionDAGAddressAnalysis.h
@@ -10,6 +10,7 @@
 #define LLVM_CODEGEN_SELECTIONDAGADDRESSANALYSIS_H
 
 #include "llvm/CodeGen/SelectionDAGNodes.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/SelectionDAGISel.h \
b/llvm/include/llvm/CodeGen/SelectionDAGISel.h index 6c0b2cfe8ef31d8..6788442d8ffb039 \
                100644
--- a/llvm/include/llvm/CodeGen/SelectionDAGISel.h
+++ b/llvm/include/llvm/CodeGen/SelectionDAGISel.h
@@ -17,6 +17,7 @@
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/CodeGen/SelectionDAG.h"
 #include "llvm/IR/BasicBlock.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/SelectionDAGNodes.h \
b/llvm/include/llvm/CodeGen/SelectionDAGNodes.h index \
                ba2222390a76cd1..e411bd143d06b37 100644
--- a/llvm/include/llvm/CodeGen/SelectionDAGNodes.h
+++ b/llvm/include/llvm/CodeGen/SelectionDAGNodes.h
@@ -42,6 +42,7 @@
 #include "llvm/Support/AlignOf.h"
 #include "llvm/Support/AtomicOrdering.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/TypeSize.h"
 #include <algorithm>
diff --git a/llvm/include/llvm/CodeGen/SelectionDAGTargetInfo.h \
b/llvm/include/llvm/CodeGen/SelectionDAGTargetInfo.h index \
                e7d608969124104..6be0884e57f2cc9 100644
--- a/llvm/include/llvm/CodeGen/SelectionDAGTargetInfo.h
+++ b/llvm/include/llvm/CodeGen/SelectionDAGTargetInfo.h
@@ -18,6 +18,7 @@
 #include "llvm/CodeGen/MachineMemOperand.h"
 #include "llvm/CodeGen/SelectionDAGNodes.h"
 #include "llvm/Support/CodeGen.h"
+#include "llvm/Support/Compiler.h"
 #include <utility>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/SlotIndexes.h \
b/llvm/include/llvm/CodeGen/SlotIndexes.h index 7e013dbf2ab385d..5fe6c1097a0b1a4 \
                100644
--- a/llvm/include/llvm/CodeGen/SlotIndexes.h
+++ b/llvm/include/llvm/CodeGen/SlotIndexes.h
@@ -29,6 +29,7 @@
 #include "llvm/CodeGen/MachineInstr.h"
 #include "llvm/CodeGen/MachineInstrBundle.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <cassert>
 #include <iterator>
diff --git a/llvm/include/llvm/CodeGen/Spiller.h \
b/llvm/include/llvm/CodeGen/Spiller.h index b2f5485eba02e73..4f1309916f06cdf 100644
--- a/llvm/include/llvm/CodeGen/Spiller.h
+++ b/llvm/include/llvm/CodeGen/Spiller.h
@@ -9,6 +9,8 @@
 #ifndef LLVM_CODEGEN_SPILLER_H
 #define LLVM_CODEGEN_SPILLER_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 
 class LiveRangeEdit;
diff --git a/llvm/include/llvm/CodeGen/StackMaps.h \
b/llvm/include/llvm/CodeGen/StackMaps.h index 467e31f17bc82bf..ecf3c2c77a88622 100644
--- a/llvm/include/llvm/CodeGen/StackMaps.h
+++ b/llvm/include/llvm/CodeGen/StackMaps.h
@@ -13,6 +13,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/CodeGen/MachineInstr.h"
 #include "llvm/IR/CallingConv.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include <algorithm>
 #include <cassert>
diff --git a/llvm/include/llvm/CodeGen/StackProtector.h \
b/llvm/include/llvm/CodeGen/StackProtector.h index 70a3abff83f6e3b..bbbbdf5899982d4 \
                100644
--- a/llvm/include/llvm/CodeGen/StackProtector.h
+++ b/llvm/include/llvm/CodeGen/StackProtector.h
@@ -21,6 +21,7 @@
 #include "llvm/CodeGen/MachineFrameInfo.h"
 #include "llvm/IR/Instructions.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/TargetParser/Triple.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/SwiftErrorValueTracking.h \
b/llvm/include/llvm/CodeGen/SwiftErrorValueTracking.h index \
                a374736347f6d7d..381f8ea5f80ae23 100644
--- a/llvm/include/llvm/CodeGen/SwiftErrorValueTracking.h
+++ b/llvm/include/llvm/CodeGen/SwiftErrorValueTracking.h
@@ -20,6 +20,7 @@
 #include "llvm/CodeGen/Register.h"
 #include "llvm/IR/BasicBlock.h"
 #include "llvm/IR/DebugLoc.h"
+#include "llvm/Support/Compiler.h"
 #include <utility>
 
 
diff --git a/llvm/include/llvm/CodeGen/SwitchLoweringUtils.h \
b/llvm/include/llvm/CodeGen/SwitchLoweringUtils.h index \
                189dfef590b0f9b..2bb840c8f6ba756 100644
--- a/llvm/include/llvm/CodeGen/SwitchLoweringUtils.h
+++ b/llvm/include/llvm/CodeGen/SwitchLoweringUtils.h
@@ -14,6 +14,7 @@
 #include "llvm/CodeGen/SelectionDAGNodes.h"
 #include "llvm/IR/InstrTypes.h"
 #include "llvm/Support/BranchProbability.h"
+#include "llvm/Support/Compiler.h"
 #include <vector>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/TailDuplicator.h \
b/llvm/include/llvm/CodeGen/TailDuplicator.h index 8fdce301c0ccb10..4ffe638f41082e7 \
                100644
--- a/llvm/include/llvm/CodeGen/TailDuplicator.h
+++ b/llvm/include/llvm/CodeGen/TailDuplicator.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/DenseSet.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/CodeGen/TargetInstrInfo.h"
+#include "llvm/Support/Compiler.h"
 #include <utility>
 #include <vector>
 
diff --git a/llvm/include/llvm/CodeGen/TargetCallingConv.h \
b/llvm/include/llvm/CodeGen/TargetCallingConv.h index \
                89ea9bcb2a408d8..ca51121b31c045d 100644
--- a/llvm/include/llvm/CodeGen/TargetCallingConv.h
+++ b/llvm/include/llvm/CodeGen/TargetCallingConv.h
@@ -16,6 +16,7 @@
 #include "llvm/CodeGen/MachineValueType.h"
 #include "llvm/CodeGen/ValueTypes.h"
 #include "llvm/Support/Alignment.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MathExtras.h"
 #include <cassert>
 #include <climits>
diff --git a/llvm/include/llvm/CodeGen/TargetFrameLowering.h \
b/llvm/include/llvm/CodeGen/TargetFrameLowering.h index \
                94de30461547e9d..2de5b174cc569cf 100644
--- a/llvm/include/llvm/CodeGen/TargetFrameLowering.h
+++ b/llvm/include/llvm/CodeGen/TargetFrameLowering.h
@@ -14,6 +14,7 @@
 #define LLVM_CODEGEN_TARGETFRAMELOWERING_H
 
 #include "llvm/CodeGen/MachineBasicBlock.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/TypeSize.h"
 #include <vector>
 
diff --git a/llvm/include/llvm/CodeGen/TargetInstrInfo.h \
b/llvm/include/llvm/CodeGen/TargetInstrInfo.h index 817d32ea0ef6f7d..7704a3568186193 \
                100644
--- a/llvm/include/llvm/CodeGen/TargetInstrInfo.h
+++ b/llvm/include/llvm/CodeGen/TargetInstrInfo.h
@@ -28,6 +28,7 @@
 #include "llvm/CodeGen/VirtRegMap.h"
 #include "llvm/MC/MCInstrInfo.h"
 #include "llvm/Support/BranchProbability.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <cassert>
 #include <cstddef>
diff --git a/llvm/include/llvm/CodeGen/TargetLowering.h \
b/llvm/include/llvm/CodeGen/TargetLowering.h index 6daf623665dafee..6bc1202c0f7945f \
                100644
--- a/llvm/include/llvm/CodeGen/TargetLowering.h
+++ b/llvm/include/llvm/CodeGen/TargetLowering.h
@@ -50,6 +50,7 @@
 #include "llvm/Support/Alignment.h"
 #include "llvm/Support/AtomicOrdering.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <algorithm>
 #include <cassert>
diff --git a/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h \
b/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h index \
                07ebf5e65431d31..bd442a1d926df41 100644
--- a/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
+++ b/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/BinaryFormat/XCOFF.h"
 #include "llvm/MC/MCExpr.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Target/TargetLoweringObjectFile.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/TargetPassConfig.h \
b/llvm/include/llvm/CodeGen/TargetPassConfig.h index 8d7086d02c8ac27..7efd4f6bc99b069 \
                100644
--- a/llvm/include/llvm/CodeGen/TargetPassConfig.h
+++ b/llvm/include/llvm/CodeGen/TargetPassConfig.h
@@ -15,6 +15,7 @@
 
 #include "llvm/Pass.h"
 #include "llvm/Support/CodeGen.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <string>
 
diff --git a/llvm/include/llvm/CodeGen/TargetRegisterInfo.h \
b/llvm/include/llvm/CodeGen/TargetRegisterInfo.h index \
                62a955f6b7d43ef..48bd68084d0a7d8 100644
--- a/llvm/include/llvm/CodeGen/TargetRegisterInfo.h
+++ b/llvm/include/llvm/CodeGen/TargetRegisterInfo.h
@@ -24,6 +24,7 @@
 #include "llvm/IR/CallingConv.h"
 #include "llvm/MC/LaneBitmask.h"
 #include "llvm/MC/MCRegisterInfo.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/MathExtras.h"
 #include "llvm/Support/Printable.h"
diff --git a/llvm/include/llvm/CodeGen/TargetSchedule.h \
b/llvm/include/llvm/CodeGen/TargetSchedule.h index bfab9cb92a38505..d2c170d143033f5 \
                100644
--- a/llvm/include/llvm/CodeGen/TargetSchedule.h
+++ b/llvm/include/llvm/CodeGen/TargetSchedule.h
@@ -20,6 +20,7 @@
 #include "llvm/Config/llvm-config.h"
 #include "llvm/MC/MCInstrItineraries.h"
 #include "llvm/MC/MCSchedule.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/TargetSubtargetInfo.h \
b/llvm/include/llvm/CodeGen/TargetSubtargetInfo.h index \
                9b98ef353d73ea3..8f3b9dfa164bb32 100644
--- a/llvm/include/llvm/CodeGen/TargetSubtargetInfo.h
+++ b/llvm/include/llvm/CodeGen/TargetSubtargetInfo.h
@@ -21,6 +21,7 @@
 #include "llvm/IR/GlobalValue.h"
 #include "llvm/MC/MCSubtargetInfo.h"
 #include "llvm/Support/CodeGen.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 #include <vector>
 
diff --git a/llvm/include/llvm/CodeGen/TileShapeInfo.h \
b/llvm/include/llvm/CodeGen/TileShapeInfo.h index 48c2d9ae70dfa6d..e902404d05a0a4a \
                100644
--- a/llvm/include/llvm/CodeGen/TileShapeInfo.h
+++ b/llvm/include/llvm/CodeGen/TileShapeInfo.h
@@ -24,6 +24,7 @@
 #include "llvm/CodeGen/MachineOperand.h"
 #include "llvm/CodeGen/MachineRegisterInfo.h"
 #include "llvm/CodeGen/Register.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/TypePromotion.h \
b/llvm/include/llvm/CodeGen/TypePromotion.h index efe58232cdcdd92..dd8fc920a78aadd \
                100644
--- a/llvm/include/llvm/CodeGen/TypePromotion.h
+++ b/llvm/include/llvm/CodeGen/TypePromotion.h
@@ -15,6 +15,7 @@
 #define LLVM_CODEGEN_TYPEPROMOTION_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/UnreachableBlockElim.h \
b/llvm/include/llvm/CodeGen/UnreachableBlockElim.h index \
                7dbae77e344015d..5732c4abe57b548 100644
--- a/llvm/include/llvm/CodeGen/UnreachableBlockElim.h
+++ b/llvm/include/llvm/CodeGen/UnreachableBlockElim.h
@@ -23,6 +23,7 @@
 #define LLVM_CODEGEN_UNREACHABLEBLOCKELIM_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/VLIWMachineScheduler.h \
b/llvm/include/llvm/CodeGen/VLIWMachineScheduler.h index \
                bd12baa6afaba67..14c262dcd624104 100644
--- a/llvm/include/llvm/CodeGen/VLIWMachineScheduler.h
+++ b/llvm/include/llvm/CodeGen/VLIWMachineScheduler.h
@@ -15,6 +15,7 @@
 #include "llvm/ADT/Twine.h"
 #include "llvm/CodeGen/MachineScheduler.h"
 #include "llvm/CodeGen/TargetSchedule.h"
+#include "llvm/Support/Compiler.h"
 #include <limits>
 #include <memory>
 #include <utility>
diff --git a/llvm/include/llvm/CodeGen/VirtRegMap.h \
b/llvm/include/llvm/CodeGen/VirtRegMap.h index 42e8d294a637add..a46469eef1b6ee9 \
                100644
--- a/llvm/include/llvm/CodeGen/VirtRegMap.h
+++ b/llvm/include/llvm/CodeGen/VirtRegMap.h
@@ -21,6 +21,7 @@
 #include "llvm/CodeGen/TargetRegisterInfo.h"
 #include "llvm/CodeGen/TileShapeInfo.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 
 namespace llvm {
diff --git a/llvm/include/llvm/CodeGen/WasmEHFuncInfo.h \
b/llvm/include/llvm/CodeGen/WasmEHFuncInfo.h index ab6b897e9f99945..a710c091186e3ab \
                100644
--- a/llvm/include/llvm/CodeGen/WasmEHFuncInfo.h
+++ b/llvm/include/llvm/CodeGen/WasmEHFuncInfo.h
@@ -16,6 +16,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/PointerUnion.h"
 #include "llvm/ADT/SmallPtrSet.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/CodeGen/WinEHFuncInfo.h \
b/llvm/include/llvm/CodeGen/WinEHFuncInfo.h index c007d462e0709ed..7e1a55c4bbf2b45 \
                100644
--- a/llvm/include/llvm/CodeGen/WinEHFuncInfo.h
+++ b/llvm/include/llvm/CodeGen/WinEHFuncInfo.h
@@ -16,6 +16,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/PointerUnion.h"
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <limits>
 #include <utility>
diff --git a/llvm/include/llvm/DWARFLinker/DWARFLinker.h \
b/llvm/include/llvm/DWARFLinker/DWARFLinker.h index 90834b6e3f9ba31..5bb6e145810abd8 \
                100644
--- a/llvm/include/llvm/DWARFLinker/DWARFLinker.h
+++ b/llvm/include/llvm/DWARFLinker/DWARFLinker.h
@@ -19,6 +19,7 @@
 #include "llvm/DebugInfo/DWARF/DWARFDebugRangeList.h"
 #include "llvm/DebugInfo/DWARF/DWARFDie.h"
 #include "llvm/DebugInfo/DWARF/DWARFExpression.h"
+#include "llvm/Support/Compiler.h"
 #include <map>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DWARFLinker/DWARFLinkerCompileUnit.h \
b/llvm/include/llvm/DWARFLinker/DWARFLinkerCompileUnit.h index \
                08ebd4bc70bc934..c78421c3518435a 100644
--- a/llvm/include/llvm/DWARFLinker/DWARFLinkerCompileUnit.h
+++ b/llvm/include/llvm/DWARFLinker/DWARFLinkerCompileUnit.h
@@ -13,6 +13,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/CodeGen/DIE.h"
 #include "llvm/DebugInfo/DWARF/DWARFUnit.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DWARFLinker/DWARFLinkerDeclContext.h \
b/llvm/include/llvm/DWARFLinker/DWARFLinkerDeclContext.h index \
                fb02b0fc1b4dfeb..488ae6f164a1185 100644
--- a/llvm/include/llvm/DWARFLinker/DWARFLinkerDeclContext.h
+++ b/llvm/include/llvm/DWARFLinker/DWARFLinkerDeclContext.h
@@ -16,6 +16,7 @@
 #include "llvm/CodeGen/NonRelocatableStringpool.h"
 #include "llvm/DebugInfo/DWARF/DWARFDebugLine.h"
 #include "llvm/DebugInfo/DWARF/DWARFDie.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/Path.h"
 #include <atomic>
diff --git a/llvm/include/llvm/DWARFLinker/DWARFStreamer.h \
b/llvm/include/llvm/DWARFLinker/DWARFStreamer.h index \
                a3842250f609c5a..1f318a065505d40 100644
--- a/llvm/include/llvm/DWARFLinker/DWARFStreamer.h
+++ b/llvm/include/llvm/DWARFLinker/DWARFStreamer.h
@@ -18,6 +18,7 @@
 #include "llvm/MC/MCObjectFileInfo.h"
 #include "llvm/MC/MCRegisterInfo.h"
 #include "llvm/MC/MCSubtargetInfo.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Target/TargetMachine.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DWARFLinkerParallel/AddressesMap.h \
b/llvm/include/llvm/DWARFLinkerParallel/AddressesMap.h index \
                5d735abab419e63..a819b791b5ac87f 100644
--- a/llvm/include/llvm/DWARFLinkerParallel/AddressesMap.h
+++ b/llvm/include/llvm/DWARFLinkerParallel/AddressesMap.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/AddressRanges.h"
 #include "llvm/DebugInfo/DWARF/DWARFDie.h"
 #include "llvm/DebugInfo/DWARF/DWARFExpression.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DWARFLinkerParallel/DWARFFile.h \
b/llvm/include/llvm/DWARFLinkerParallel/DWARFFile.h index \
                c20d59f9771d9d5..21eecb20b527216 100644
--- a/llvm/include/llvm/DWARFLinkerParallel/DWARFFile.h
+++ b/llvm/include/llvm/DWARFLinkerParallel/DWARFFile.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/DWARFLinkerParallel/AddressesMap.h"
 #include "llvm/DebugInfo/DWARF/DWARFContext.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include <functional>
 #include <memory>
diff --git a/llvm/include/llvm/DWARFLinkerParallel/DWARFLinker.h \
b/llvm/include/llvm/DWARFLinkerParallel/DWARFLinker.h index \
                3c725fc4f53a840..f893b41d68f2a36 100644
--- a/llvm/include/llvm/DWARFLinkerParallel/DWARFLinker.h
+++ b/llvm/include/llvm/DWARFLinkerParallel/DWARFLinker.h
@@ -15,6 +15,7 @@
 #include "llvm/DebugInfo/DWARF/DWARFContext.h"
 #include "llvm/DebugInfo/DWARF/DWARFDie.h"
 #include "llvm/MC/MCDwarf.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/TargetParser/Triple.h"
 
 /// ------------------------------------------------------------------
diff --git a/llvm/include/llvm/DWARFLinkerParallel/StringPool.h \
b/llvm/include/llvm/DWARFLinkerParallel/StringPool.h index \
                4828ff4e4b05d3f..8cb976d12ec85c3 100644
--- a/llvm/include/llvm/DWARFLinkerParallel/StringPool.h
+++ b/llvm/include/llvm/DWARFLinkerParallel/StringPool.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/ConcurrentHashtable.h"
 #include "llvm/CodeGen/DwarfStringPoolEntry.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/PerThreadBumpPtrAllocator.h"
 #include <string>
 #include <string_view>
diff --git a/llvm/include/llvm/DWARFLinkerParallel/StringTable.h \
b/llvm/include/llvm/DWARFLinkerParallel/StringTable.h index \
                4f8aece521d85d0..a1d02e1b9864a9c 100644
--- a/llvm/include/llvm/DWARFLinkerParallel/StringTable.h
+++ b/llvm/include/llvm/DWARFLinkerParallel/StringTable.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/DWARFLinkerParallel/StringPool.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace dwarflinker_parallel {
diff --git a/llvm/include/llvm/DWP/DWP.h b/llvm/include/llvm/DWP/DWP.h
index e33133d38ae008e..389c3c830e4c869 100644
--- a/llvm/include/llvm/DWP/DWP.h
+++ b/llvm/include/llvm/DWP/DWP.h
@@ -10,6 +10,7 @@
 #include "llvm/MC/MCSection.h"
 #include "llvm/MC/MCStreamer.h"
 #include "llvm/Object/ObjectFile.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <deque>
 #include <vector>
diff --git a/llvm/include/llvm/DWP/DWPError.h b/llvm/include/llvm/DWP/DWPError.h
index a690ef3109bbfc0..da8c8406dcf17ce 100644
--- a/llvm/include/llvm/DWP/DWPError.h
+++ b/llvm/include/llvm/DWP/DWPError.h
@@ -1,6 +1,7 @@
 #ifndef LLVM_DWP_DWPERROR_H
 #define LLVM_DWP_DWPERROR_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <string>
diff --git a/llvm/include/llvm/DWP/DWPStringPool.h \
b/llvm/include/llvm/DWP/DWPStringPool.h index 1354b46f156b6fb..6234be924dae4d7 100644
--- a/llvm/include/llvm/DWP/DWPStringPool.h
+++ b/llvm/include/llvm/DWP/DWPStringPool.h
@@ -4,6 +4,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/MC/MCSection.h"
 #include "llvm/MC/MCStreamer.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/AppendingTypeTableBuilder.h \
b/llvm/include/llvm/DebugInfo/CodeView/AppendingTypeTableBuilder.h index \
                fa2277343d5d4af..945c5609c6ca4f5 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/AppendingTypeTableBuilder.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/AppendingTypeTableBuilder.h
@@ -16,6 +16,7 @@
 #include "llvm/DebugInfo/CodeView/TypeCollection.h"
 #include "llvm/DebugInfo/CodeView/TypeIndex.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/CVRecord.h \
b/llvm/include/llvm/DebugInfo/CodeView/CVRecord.h index \
                99de8ebef812fb4..025db3b0b19aaca 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/CVRecord.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/CVRecord.h
@@ -15,6 +15,7 @@
 #include "llvm/DebugInfo/CodeView/RecordSerialization.h"
 #include "llvm/Support/BinaryStreamReader.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/DebugInfo/CodeView/CVSymbolVisitor.h \
b/llvm/include/llvm/DebugInfo/CodeView/CVSymbolVisitor.h index \
                c629018fd109fc8..28a98e03d5ab607 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/CVSymbolVisitor.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/CVSymbolVisitor.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_CODEVIEW_CVSYMBOLVISITOR_H
 
 #include "llvm/DebugInfo/CodeView/CVRecord.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h \
b/llvm/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h index \
                7780e233cab3b0b..ce9467760eb3192 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/CVTypeVisitor.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/DebugInfo/CodeView/CVRecord.h"
 #include "llvm/DebugInfo/CodeView/CodeView.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/CodeView.h \
b/llvm/include/llvm/DebugInfo/CodeView/CodeView.h index \
                a9ad99a1d0a84c0..ac09772ca0b4630 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/CodeView.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/CodeView.h
@@ -16,6 +16,7 @@
 #include <cinttypes>
 #include <type_traits>
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/CodeViewError.h \
b/llvm/include/llvm/DebugInfo/CodeView/CodeViewError.h index \
                17eb06c242a95cb..4f59e182a3d3a66 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/CodeViewError.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/CodeViewError.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_DEBUGINFO_CODEVIEW_CODEVIEWERROR_H
 #define LLVM_DEBUGINFO_CODEVIEW_CODEVIEWERROR_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h \
b/llvm/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h index \
                29ba0c3eb785086..fc6bbb1ba5a1d21 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h
@@ -14,6 +14,7 @@
 #include "llvm/DebugInfo/CodeView/CodeViewError.h"
 #include "llvm/Support/BinaryStreamReader.h"
 #include "llvm/Support/BinaryStreamWriter.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cassert>
 #include <cstdint>
diff --git a/llvm/include/llvm/DebugInfo/CodeView/ContinuationRecordBuilder.h \
b/llvm/include/llvm/DebugInfo/CodeView/ContinuationRecordBuilder.h index \
                84cef520a2f4606..90ec227748d3b84 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/ContinuationRecordBuilder.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/ContinuationRecordBuilder.h
@@ -15,6 +15,7 @@
 #include "llvm/DebugInfo/CodeView/TypeRecordMapping.h"
 #include "llvm/Support/BinaryByteStream.h"
 #include "llvm/Support/BinaryStreamWriter.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <vector>
 
diff --git a/llvm/include/llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h \
b/llvm/include/llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h index \
                615fd216e65500e..89f9496e1f82608 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h
@@ -17,6 +17,7 @@
 #include "llvm/Support/Allocator.h"
 #include "llvm/Support/BinaryStreamArray.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 #include <vector>
diff --git a/llvm/include/llvm/DebugInfo/CodeView/DebugCrossExSubsection.h \
b/llvm/include/llvm/DebugInfo/CodeView/DebugCrossExSubsection.h index \
                e21873a3af8f7f3..fe2acc5c725127f 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/DebugCrossExSubsection.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/DebugCrossExSubsection.h
@@ -13,6 +13,7 @@
 #include "llvm/DebugInfo/CodeView/DebugSubsection.h"
 #include "llvm/Support/BinaryStreamArray.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 #include <map>
diff --git a/llvm/include/llvm/DebugInfo/CodeView/DebugCrossImpSubsection.h \
b/llvm/include/llvm/DebugInfo/CodeView/DebugCrossImpSubsection.h index \
                198ce4a8b4e4c24..b2dd04684384b69 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/DebugCrossImpSubsection.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/DebugCrossImpSubsection.h
@@ -15,6 +15,7 @@
 #include "llvm/DebugInfo/CodeView/DebugSubsection.h"
 #include "llvm/Support/BinaryStreamArray.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/DebugInfo/CodeView/DebugFrameDataSubsection.h \
b/llvm/include/llvm/DebugInfo/CodeView/DebugFrameDataSubsection.h index \
                f2c5bf9d7c957cf..9c80dc00bdcd7df 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/DebugFrameDataSubsection.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/DebugFrameDataSubsection.h
@@ -13,6 +13,7 @@
 #include "llvm/DebugInfo/CodeView/DebugSubsection.h"
 #include "llvm/Support/BinaryStreamArray.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 
diff --git a/llvm/include/llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h \
b/llvm/include/llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h index \
                f9d1507af5f3cd6..064a38c96cab3c9 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/DebugInlineeLinesSubsection.h
@@ -16,6 +16,7 @@
 #include "llvm/Support/BinaryStreamArray.h"
 #include "llvm/Support/BinaryStreamReader.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/DebugInfo/CodeView/DebugLinesSubsection.h \
b/llvm/include/llvm/DebugInfo/CodeView/DebugLinesSubsection.h index \
                68eb9e1af3bd3c0..a5748510ca73f4f 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/DebugLinesSubsection.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/DebugLinesSubsection.h
@@ -15,6 +15,7 @@
 #include "llvm/DebugInfo/CodeView/Line.h"
 #include "llvm/Support/BinaryStreamArray.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/DebugInfo/CodeView/DebugStringTableSubsection.h \
b/llvm/include/llvm/DebugInfo/CodeView/DebugStringTableSubsection.h index \
                6e5b8adddd4aef4..bb3054a431a3532 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/DebugStringTableSubsection.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/DebugStringTableSubsection.h
@@ -15,6 +15,7 @@
 #include "llvm/DebugInfo/CodeView/CodeView.h"
 #include "llvm/DebugInfo/CodeView/DebugSubsection.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 
diff --git a/llvm/include/llvm/DebugInfo/CodeView/DebugSubsection.h \
b/llvm/include/llvm/DebugInfo/CodeView/DebugSubsection.h index \
                39413bb73b58325..5e7e8d8135d387e 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/DebugSubsection.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/DebugSubsection.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_CODEVIEW_DEBUGSUBSECTION_H
 
 #include "llvm/DebugInfo/CodeView/CodeView.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 #include <cstdint>
diff --git a/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionRecord.h \
b/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionRecord.h index \
                e915d8a5830c4a9..e0c3ecbc4a3fb01 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionRecord.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionRecord.h
@@ -12,6 +12,7 @@
 #include "llvm/DebugInfo/CodeView/CodeView.h"
 #include "llvm/Support/BinaryStreamArray.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MathExtras.h"
diff --git a/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h \
b/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h index \
                fdca2ad063a14c4..67c7856ee8fa093 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/DebugSubsectionVisitor.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_CODEVIEW_DEBUGSUBSECTIONVISITOR_H
 
 #include "llvm/DebugInfo/CodeView/StringsAndChecksums.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h \
b/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h index \
                91b740ce6b9aee4..034e82b113359f1 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolRVASubsection.h
@@ -12,6 +12,7 @@
 #include "llvm/DebugInfo/CodeView/CodeView.h"
 #include "llvm/DebugInfo/CodeView/DebugSubsection.h"
 #include "llvm/Support/BinaryStreamArray.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolsSubsection.h \
b/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolsSubsection.h index \
                51b8523ed969702..006a0a59220b0a5 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolsSubsection.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/DebugSymbolsSubsection.h
@@ -11,6 +11,7 @@
 
 #include "llvm/DebugInfo/CodeView/CVRecord.h"
 #include "llvm/DebugInfo/CodeView/DebugSubsection.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/DebugUnknownSubsection.h \
b/llvm/include/llvm/DebugInfo/CodeView/DebugUnknownSubsection.h index \
                eddecf3650349ca..ff6c1253edc50f6 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/DebugUnknownSubsection.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/DebugUnknownSubsection.h
@@ -11,6 +11,7 @@
 
 #include "llvm/DebugInfo/CodeView/DebugSubsection.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace codeview {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/EnumTables.h \
b/llvm/include/llvm/DebugInfo/CodeView/EnumTables.h index \
                ec874b7ca114827..62a0cb60e38117e 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/EnumTables.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/EnumTables.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/BinaryFormat/COFF.h"
 #include "llvm/DebugInfo/CodeView/CodeView.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/Formatters.h \
b/llvm/include/llvm/DebugInfo/CodeView/Formatters.h index \
                10683c289224aa6..91c93b03a92ae1e 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/Formatters.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/Formatters.h
@@ -13,6 +13,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/DebugInfo/CodeView/GUID.h"
 #include "llvm/DebugInfo/CodeView/TypeIndex.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/FormatAdapters.h"
 #include "llvm/Support/FormatVariadic.h"
 #include "llvm/Support/raw_ostream.h"
diff --git a/llvm/include/llvm/DebugInfo/CodeView/GUID.h \
b/llvm/include/llvm/DebugInfo/CodeView/GUID.h index 5f807e6f7eebd26..74cc98d33ec1222 \
                100644
--- a/llvm/include/llvm/DebugInfo/CodeView/GUID.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/GUID.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_DEBUGINFO_CODEVIEW_GUID_H
 #define LLVM_DEBUGINFO_CODEVIEW_GUID_H
 
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <cstring>
 
diff --git a/llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h \
b/llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h index \
                18f16bc66a7775e..840ff27867d9cad 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h
@@ -18,6 +18,7 @@
 #include "llvm/DebugInfo/CodeView/TypeHashing.h"
 #include "llvm/DebugInfo/CodeView/TypeIndex.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 
diff --git a/llvm/include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h \
b/llvm/include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h index \
                240f7092140c1d8..d9434411847a485 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h
@@ -15,6 +15,7 @@
 #include "llvm/DebugInfo/CodeView/TypeIndex.h"
 #include "llvm/Support/Allocator.h"
 #include "llvm/Support/BinaryStreamArray.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/StringSaver.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/DebugInfo/CodeView/Line.h \
b/llvm/include/llvm/DebugInfo/CodeView/Line.h index 6918645b94d2dfc..a0ac8a94f50cdea \
                100644
--- a/llvm/include/llvm/DebugInfo/CodeView/Line.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/Line.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_DEBUGINFO_CODEVIEW_LINE_H
 #define LLVM_DEBUGINFO_CODEVIEW_LINE_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include <cinttypes>
 
diff --git a/llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h \
b/llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h index \
                10bc8f60613c8e4..f602362c347e6de 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h
@@ -17,6 +17,7 @@
 #include "llvm/DebugInfo/CodeView/TypeCollection.h"
 #include "llvm/DebugInfo/CodeView/TypeIndex.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/RecordName.h \
b/llvm/include/llvm/DebugInfo/CodeView/RecordName.h index \
                9078ed38d2f1429..50432f3805b3b07 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/RecordName.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/RecordName.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/StringRef.h"
 #include "llvm/DebugInfo/CodeView/CVRecord.h"
+#include "llvm/Support/Compiler.h"
 #include <string>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/RecordSerialization.h \
b/llvm/include/llvm/DebugInfo/CodeView/RecordSerialization.h index \
                10248dbf646b391..8f9e13cca2c6fb1 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/RecordSerialization.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/RecordSerialization.h
@@ -14,6 +14,7 @@
 #include "llvm/DebugInfo/CodeView/CodeView.h"
 #include "llvm/DebugInfo/CodeView/CodeViewError.h"
 #include "llvm/Support/BinaryStreamReader.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include <cinttypes>
diff --git a/llvm/include/llvm/DebugInfo/CodeView/SimpleTypeSerializer.h \
b/llvm/include/llvm/DebugInfo/CodeView/SimpleTypeSerializer.h index \
                fcc0452a6ae9a77..203813c697500fa 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/SimpleTypeSerializer.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/SimpleTypeSerializer.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_CODEVIEW_SIMPLETYPESERIALIZER_H
 
 #include "llvm/ADT/ArrayRef.h"
+#include "llvm/Support/Compiler.h"
 #include <vector>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/StringsAndChecksums.h \
b/llvm/include/llvm/DebugInfo/CodeView/StringsAndChecksums.h index \
                50e745e5c2ab98c..8904ea5043f5f1b 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/StringsAndChecksums.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/StringsAndChecksums.h
@@ -11,6 +11,7 @@
 
 #include "llvm/DebugInfo/CodeView/CodeView.h"
 #include "llvm/DebugInfo/CodeView/DebugSubsectionRecord.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h \
b/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h index \
                108abb291498e3e..48f272e1d77d102 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h
@@ -16,6 +16,7 @@
 #include "llvm/DebugInfo/CodeView/SymbolVisitorDelegate.h"
 #include "llvm/Support/BinaryByteStream.h"
 #include "llvm/Support/BinaryStreamReader.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/SymbolDumpDelegate.h \
b/llvm/include/llvm/DebugInfo/CodeView/SymbolDumpDelegate.h index \
                12f45dcb21ffc54..fddd4cd7652d4cb 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/SymbolDumpDelegate.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/SymbolDumpDelegate.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/DebugInfo/CodeView/SymbolVisitorDelegate.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/SymbolDumper.h \
b/llvm/include/llvm/DebugInfo/CodeView/SymbolDumper.h index \
                c674700fac59d9d..6c8f875bff25bdb 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/SymbolDumper.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/SymbolDumper.h
@@ -12,6 +12,7 @@
 #include "llvm/DebugInfo/CodeView/CVRecord.h"
 #include "llvm/DebugInfo/CodeView/CodeView.h"
 #include "llvm/DebugInfo/CodeView/SymbolDumpDelegate.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 #include <memory>
diff --git a/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h \
b/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h index \
                3ddcf9c5739096c..10b1e6b1cb7365a 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h
@@ -19,6 +19,7 @@
 #include "llvm/DebugInfo/CodeView/RecordSerialization.h"
 #include "llvm/DebugInfo/CodeView/TypeIndex.h"
 #include "llvm/Support/BinaryStreamArray.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include <cstdint>
 #include <vector>
diff --git a/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordHelpers.h \
b/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordHelpers.h index \
                71bc70dde6ed186..87ba1d62411a2cb 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordHelpers.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordHelpers.h
@@ -11,6 +11,7 @@
 
 #include "llvm/DebugInfo/CodeView/CVRecord.h"
 #include "llvm/DebugInfo/CodeView/CodeView.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace codeview {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h \
b/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h index \
                30e9c626c205424..daf77f2097b78cf 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h
@@ -11,6 +11,7 @@
 
 #include "llvm/DebugInfo/CodeView/CodeViewRecordIO.h"
 #include "llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class BinaryStreamReader;
diff --git a/llvm/include/llvm/DebugInfo/CodeView/SymbolSerializer.h \
b/llvm/include/llvm/DebugInfo/CodeView/SymbolSerializer.h index \
                df52b374f72df0c..7f9935e5d85d2b1 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/SymbolSerializer.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/SymbolSerializer.h
@@ -17,6 +17,7 @@
 #include "llvm/Support/Allocator.h"
 #include "llvm/Support/BinaryByteStream.h"
 #include "llvm/Support/BinaryStreamWriter.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include <array>
diff --git a/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h \
b/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h index \
                80574be2097f607..17e32083e33bd93 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbackPipeline.h
@@ -11,6 +11,7 @@
 
 #include "llvm/DebugInfo/CodeView/SymbolRecord.h"
 #include "llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <vector>
 
diff --git a/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h \
b/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h index \
                1a4d5b9d31df67d..9171e7db37cf10e 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_CODEVIEW_SYMBOLVISITORCALLBACKS_H
 
 #include "llvm/DebugInfo/CodeView/SymbolRecord.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorDelegate.h \
b/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorDelegate.h index \
                368d8b288315c2e..688f0b7eb22b21b 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorDelegate.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/SymbolVisitorDelegate.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_CODEVIEW_SYMBOLVISITORDELEGATE_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/TypeCollection.h \
b/llvm/include/llvm/DebugInfo/CodeView/TypeCollection.h index \
                dd082a72125a58f..a61b3cda11de70e 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/TypeCollection.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/TypeCollection.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/DebugInfo/CodeView/CVRecord.h"
 #include "llvm/DebugInfo/CodeView/TypeIndex.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace codeview {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/TypeDeserializer.h \
b/llvm/include/llvm/DebugInfo/CodeView/TypeDeserializer.h index \
                2b17f5ccb13b0a8..cc97aca3e46df8e 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/TypeDeserializer.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/TypeDeserializer.h
@@ -17,6 +17,7 @@
 #include "llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h"
 #include "llvm/Support/BinaryByteStream.h"
 #include "llvm/Support/BinaryStreamReader.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cassert>
 #include <cstdint>
diff --git a/llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h \
b/llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h index \
                1fad50343e3ae33..8d50e5019b43b54 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/TypeDumpVisitor.h
@@ -13,6 +13,7 @@
 #include "llvm/DebugInfo/CodeView/CVRecord.h"
 #include "llvm/DebugInfo/CodeView/CodeView.h"
 #include "llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class ScopedPrinter;
diff --git a/llvm/include/llvm/DebugInfo/CodeView/TypeHashing.h \
b/llvm/include/llvm/DebugInfo/CodeView/TypeHashing.h index \
                1914f499f0ed4c6..07b0ffdb61f661e 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/TypeHashing.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/TypeHashing.h
@@ -17,6 +17,7 @@
 #include "llvm/DebugInfo/CodeView/TypeCollection.h"
 #include "llvm/DebugInfo/CodeView/TypeIndex.h"
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/FormatProviders.h"
 
 #include <type_traits>
diff --git a/llvm/include/llvm/DebugInfo/CodeView/TypeIndex.h \
b/llvm/include/llvm/DebugInfo/CodeView/TypeIndex.h index \
                653eafa04e0ab67..2c5f9b63da31d62 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/TypeIndex.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/TypeIndex.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_CODEVIEW_TYPEINDEX_H
 
 #include "llvm/ADT/DenseMapInfo.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include <cassert>
 #include <cinttypes>
diff --git a/llvm/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h \
b/llvm/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h index \
                7ef8521604fb9c4..e9cfadf0586ff50 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/DebugInfo/CodeView/CVRecord.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 template <typename T> class SmallVectorImpl;
diff --git a/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h \
b/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h index \
                24a4accab845a87..b69cda6303794fa 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h
@@ -18,6 +18,7 @@
 #include "llvm/DebugInfo/CodeView/GUID.h"
 #include "llvm/DebugInfo/CodeView/TypeIndex.h"
 #include "llvm/Support/BinaryStreamArray.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include <algorithm>
 #include <cstdint>
diff --git a/llvm/include/llvm/DebugInfo/CodeView/TypeRecordHelpers.h \
b/llvm/include/llvm/DebugInfo/CodeView/TypeRecordHelpers.h index \
                aa183cd7d19d30a..d28e40bfbe5e529 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/TypeRecordHelpers.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/TypeRecordHelpers.h
@@ -11,6 +11,7 @@
 
 #include "llvm/DebugInfo/CodeView/CVRecord.h"
 #include "llvm/DebugInfo/CodeView/TypeIndex.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace codeview {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h \
b/llvm/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h index \
                26eb7d221679d06..070243f8532dd02 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/TypeRecordMapping.h
@@ -13,6 +13,7 @@
 #include "llvm/DebugInfo/CodeView/CodeView.h"
 #include "llvm/DebugInfo/CodeView/CodeViewRecordIO.h"
 #include "llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <optional>
 
diff --git a/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h \
b/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h index \
                9bcae7a4b729ce5..4e565319737f43b 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/DebugInfo/CodeView/CVRecord.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/CodeView/TypeTableCollection.h \
b/llvm/include/llvm/DebugInfo/CodeView/TypeTableCollection.h index \
                2a389b9ac34e708..1b11dbe28332f5f 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/TypeTableCollection.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/TypeTableCollection.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_CODEVIEW_TYPETABLECOLLECTION_H
 
 #include "llvm/DebugInfo/CodeView/TypeCollection.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/StringSaver.h"
 
 #include <vector>
diff --git a/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h \
b/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h index \
                66944f6d0bd2da3..ebf90fff1d98e41 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbackPipeline.h
@@ -12,6 +12,7 @@
 #include "llvm/DebugInfo/CodeView/CodeView.h"
 #include "llvm/DebugInfo/CodeView/TypeRecord.h"
 #include "llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <vector>
 
diff --git a/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h \
b/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h index \
                33f8b1f24b1b4ce..75a137ca1b0f5be 100644
--- a/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h
+++ b/llvm/include/llvm/DebugInfo/CodeView/TypeVisitorCallbacks.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_CODEVIEW_TYPEVISITORCALLBACKS_H
 
 #include "llvm/DebugInfo/CodeView/TypeRecord.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/DIContext.h \
b/llvm/include/llvm/DebugInfo/DIContext.h index 6866a6614b56bc1..9cf727151800fd9 \
                100644
--- a/llvm/include/llvm/DebugInfo/DIContext.h
+++ b/llvm/include/llvm/DebugInfo/DIContext.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/Object/ObjectFile.h"
 #include "llvm/Support/WithColor.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 #include <cassert>
 #include <cstdint>
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h index \
                02b402e86d23399..15279728e039a48 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h
@@ -13,6 +13,7 @@
 #include "llvm/ADT/iterator_range.h"
 #include "llvm/BinaryFormat/Dwarf.h"
 #include "llvm/DebugInfo/DWARF/DWARFFormValue.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 #include <cstdint>
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h index \
                ce5d2f6c1457dc2..4581a0d9e36d6f6 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
@@ -15,6 +15,7 @@
 #include "llvm/BinaryFormat/Dwarf.h"
 #include "llvm/DebugInfo/DWARF/DWARFDataExtractor.h"
 #include "llvm/DebugInfo/DWARF/DWARFFormValue.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <utility>
 
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFAddressRange.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFAddressRange.h index \
                f4d6c451cbe1d65..1bbbe329ce590e6 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFAddressRange.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFAddressRange.h
@@ -11,6 +11,7 @@
 
 #include "llvm/DebugInfo/DIContext.h"
 #include "llvm/Object/ObjectFile.h"
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <cassert>
 #include <cstdint>
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFAttribute.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFAttribute.h index \
                104ac1b9ddfbbdc..35cd164ece3f73d 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFAttribute.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFAttribute.h
@@ -11,6 +11,7 @@
 
 #include "llvm/BinaryFormat/Dwarf.h"
 #include "llvm/DebugInfo/DWARF/DWARFFormValue.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h index \
                d449b7bed796e21..c7484374cef21e1 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_DWARF_DWARFCOMPILEUNIT_H
 
 #include "llvm/DebugInfo/DWARF/DWARFUnit.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h index \
                27720ac746ee2fd..ef5fa72ac819b52 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h
@@ -20,6 +20,7 @@
 #include "llvm/DebugInfo/DWARF/DWARFUnit.h"
 #include "llvm/Object/Binary.h"
 #include "llvm/Object/ObjectFile.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataExtractor.h"
 #include "llvm/Support/Error.h"
 #include "llvm/TargetParser/Host.h"
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h index \
                e94fa7bf5590f2a..814d506840b490b 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h
@@ -11,6 +11,7 @@
 
 #include "llvm/BinaryFormat/Dwarf.h"
 #include "llvm/DebugInfo/DWARF/DWARFSection.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataExtractor.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h index \
                5f1bf26c36d8179..79bfadefc3b5f47 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_DWARF_DWARFDEBUGABBREV_H
 
 #include "llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataExtractor.h"
 #include <cstdint>
 #include <map>
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h index \
                ae2a4e2276da0fe..39a5e77257ad227 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAddr.h
@@ -11,6 +11,7 @@
 
 #include "llvm/BinaryFormat/Dwarf.h"
 #include "llvm/DebugInfo/DIContext.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 #include <vector>
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h index \
                760d8826771c092..dd9d6709a61f400 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/iterator_range.h"
 #include "llvm/BinaryFormat/Dwarf.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 #include <vector>
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h index \
                068674cfae5c56b..5090fbc380d53a7 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/DenseSet.h"
 #include "llvm/ADT/STLFunctionalExtras.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <vector>
 
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h index \
                bc35f2ab988ed2d..84094eda6361a70 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h
@@ -13,6 +13,7 @@
 #include "llvm/ADT/SmallString.h"
 #include "llvm/ADT/iterator.h"
 #include "llvm/DebugInfo/DWARF/DWARFExpression.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/TargetParser/Triple.h"
 #include <map>
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h index \
                7d59f4257b2e2ab..759607e71e72769 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h
@@ -11,6 +11,7 @@
 
 #include "llvm/BinaryFormat/Dwarf.h"
 #include "llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h index \
                5c01dad848fd215..dc950bd9f796ebe 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
@@ -14,6 +14,7 @@
 #include "llvm/DebugInfo/DIContext.h"
 #include "llvm/DebugInfo/DWARF/DWARFFormValue.h"
 #include "llvm/DebugInfo/DWARF/DWARFUnit.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MD5.h"
 #include "llvm/Support/Path.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h index \
                5a82e7bd6289a0e..7205a2b52e27185 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/DebugInfo/DWARF/DWARFDataExtractor.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Errc.h"
 #include <cstdint>
 
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h index \
                10d4eb25a921b1f..a9270c7eefdb975 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/DebugInfo/DWARF/DWARFDataExtractor.h"
 #include "llvm/DebugInfo/DWARF/DWARFUnit.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h index \
                6c82bbfe74f7b95..1faa336099a3a00 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h
@@ -13,6 +13,7 @@
 #include "llvm/ADT/STLFunctionalExtras.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/BinaryFormat/Dwarf.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <vector>
 
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h index \
                02bb5f0a3d95058..8eb4f592820d922 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_DWARF_DWARFDEBUGRANGELIST_H
 
 #include "llvm/DebugInfo/DWARF/DWARFAddressRange.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <vector>
 
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h index \
                8ddd9cab23644ab..b12d807bcb8d1a0 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h
@@ -13,6 +13,7 @@
 #include "llvm/BinaryFormat/Dwarf.h"
 #include "llvm/DebugInfo/DWARF/DWARFAddressRange.h"
 #include "llvm/DebugInfo/DWARF/DWARFListTable.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h index 421b84d644db64b..048ef08ab57ded8 \
                100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
@@ -18,6 +18,7 @@
 #include "llvm/DebugInfo/DWARF/DWARFAttribute.h"
 #include "llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h"
 #include "llvm/DebugInfo/DWARF/DWARFLocationExpression.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 #include <iterator>
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h index \
                00228a32173f1fa..1a7c354c0a768a8 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/iterator.h"
 #include "llvm/BinaryFormat/Dwarf.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataExtractor.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h index \
                2dcd7805b6c96b1..b9d1331ec800066 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/BinaryFormat/Dwarf.h"
 #include "llvm/DebugInfo/DIContext.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataExtractor.h"
 #include <cstdint>
 
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFGdbIndex.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFGdbIndex.h index \
                6b23c4e57d95031..7e7e9052dc1339a 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFGdbIndex.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFGdbIndex.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <utility>
 
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h index \
                d739d6c195df99c..a0303da25313b40 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h
@@ -12,6 +12,7 @@
 #include "llvm/BinaryFormat/Dwarf.h"
 #include "llvm/DebugInfo/DIContext.h"
 #include "llvm/DebugInfo/DWARF/DWARFDataExtractor.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Errc.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/raw_ostream.h"
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFLocationExpression.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFLocationExpression.h index \
                8b5497f4eeb9641..9884cbbbe2161b4 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFLocationExpression.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFLocationExpression.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_DWARF_DWARFLOCATIONEXPRESSION_H
 
 #include "llvm/DebugInfo/DWARF/DWARFAddressRange.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFObject.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFObject.h index \
                52bd91d9140f938..6e886abad627d5f 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFObject.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFObject.h
@@ -12,6 +12,7 @@
 #include "llvm/DebugInfo/DWARF/DWARFRelocMap.h"
 #include "llvm/DebugInfo/DWARF/DWARFSection.h"
 #include "llvm/Object/ObjectFile.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h index \
                c5999a65c2a7259..0a8571ec711d737 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/Object/ObjectFile.h"
 #include "llvm/Object/RelocationResolver.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFSection.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFSection.h index \
                e03dc21fb6f00fd..d0b221165c3a64b 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFSection.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFSection.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_DWARF_DWARFSECTION_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFTypePrinter.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFTypePrinter.h index \
                e05271740e61577..19212ead6626488 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFTypePrinter.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFTypePrinter.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/BinaryFormat/Dwarf.h"
 #include "llvm/DebugInfo/DWARF/DWARFDie.h"
+#include "llvm/Support/Compiler.h"
 
 #include <string>
 
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h index \
                85ec6fd86ade674..afbc3d52c3224b6 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/StringRef.h"
 #include "llvm/DebugInfo/DWARF/DWARFUnit.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h index \
                b42c951598d6fbd..e70af0309bd904c 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h
@@ -21,6 +21,7 @@
 #include "llvm/DebugInfo/DWARF/DWARFDie.h"
 #include "llvm/DebugInfo/DWARF/DWARFLocationExpression.h"
 #include "llvm/DebugInfo/DWARF/DWARFUnitIndex.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataExtractor.h"
 #include <cassert>
 #include <cstddef>
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h index \
                e65b193ffc8617a..2a0dcf5e750b08d 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <memory>
 
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h \
b/llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h index \
                ac890cdf065f877..b57ad1d65122835 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h
@@ -14,6 +14,7 @@
 #include "llvm/DebugInfo/DWARF/DWARFAddressRange.h"
 #include "llvm/DebugInfo/DWARF/DWARFDie.h"
 #include "llvm/DebugInfo/DWARF/DWARFUnitIndex.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <map>
 #include <set>
diff --git a/llvm/include/llvm/DebugInfo/GSYM/DwarfTransformer.h \
b/llvm/include/llvm/DebugInfo/GSYM/DwarfTransformer.h index \
                b8d7199f2d87ff4..ee0241dcb11112a 100644
--- a/llvm/include/llvm/DebugInfo/GSYM/DwarfTransformer.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/DwarfTransformer.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/StringRef.h"
 #include "llvm/DebugInfo/GSYM/ExtractRanges.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/GSYM/ExtractRanges.h \
b/llvm/include/llvm/DebugInfo/GSYM/ExtractRanges.h index \
                9a6568719875da5..b33fcb1d204e079 100644
--- a/llvm/include/llvm/DebugInfo/GSYM/ExtractRanges.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/ExtractRanges.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_GSYM_EXTRACTRANGES_H
 
 #include "llvm/ADT/AddressRanges.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Format.h"
 #include "llvm/Support/raw_ostream.h"
 #include <stdint.h>
diff --git a/llvm/include/llvm/DebugInfo/GSYM/FileEntry.h \
b/llvm/include/llvm/DebugInfo/GSYM/FileEntry.h index 8e00c5f01c8e894..ee27995735a68a9 \
                100644
--- a/llvm/include/llvm/DebugInfo/GSYM/FileEntry.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/FileEntry.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/DenseMapInfo.h"
 #include "llvm/ADT/Hashing.h"
+#include "llvm/Support/Compiler.h"
 #include <functional>
 #include <stdint.h>
 
diff --git a/llvm/include/llvm/DebugInfo/GSYM/FileWriter.h \
b/llvm/include/llvm/DebugInfo/GSYM/FileWriter.h index \
                74811240e0b5e4f..402cef8491ae9a9 100644
--- a/llvm/include/llvm/DebugInfo/GSYM/FileWriter.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/FileWriter.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_GSYM_FILEWRITER_H
 
 #include "llvm/ADT/ArrayRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 
 #include <stddef.h>
diff --git a/llvm/include/llvm/DebugInfo/GSYM/FunctionInfo.h \
b/llvm/include/llvm/DebugInfo/GSYM/FunctionInfo.h index \
                cf917bf294cfc31..cfbdfe78c7ca1e2 100644
--- a/llvm/include/llvm/DebugInfo/GSYM/FunctionInfo.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/FunctionInfo.h
@@ -15,6 +15,7 @@
 #include "llvm/DebugInfo/GSYM/LineTable.h"
 #include "llvm/DebugInfo/GSYM/LookupResult.h"
 #include "llvm/DebugInfo/GSYM/StringTable.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <tuple>
 
diff --git a/llvm/include/llvm/DebugInfo/GSYM/GsymCreator.h \
b/llvm/include/llvm/DebugInfo/GSYM/GsymCreator.h index \
                bca3a83cc685045..5e5f6287bfdd417 100644
--- a/llvm/include/llvm/DebugInfo/GSYM/GsymCreator.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/GsymCreator.h
@@ -20,6 +20,7 @@
 #include "llvm/DebugInfo/GSYM/FileEntry.h"
 #include "llvm/DebugInfo/GSYM/FunctionInfo.h"
 #include "llvm/MC/StringTableBuilder.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/Path.h"
diff --git a/llvm/include/llvm/DebugInfo/GSYM/GsymReader.h \
b/llvm/include/llvm/DebugInfo/GSYM/GsymReader.h index \
                5c0ab87dca3035c..885b6297de07865 100644
--- a/llvm/include/llvm/DebugInfo/GSYM/GsymReader.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/GsymReader.h
@@ -15,6 +15,7 @@
 #include "llvm/DebugInfo/GSYM/Header.h"
 #include "llvm/DebugInfo/GSYM/LineEntry.h"
 #include "llvm/DebugInfo/GSYM/StringTable.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataExtractor.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/ErrorOr.h"
diff --git a/llvm/include/llvm/DebugInfo/GSYM/Header.h \
b/llvm/include/llvm/DebugInfo/GSYM/Header.h index 9ca32d25985e9fe..1198ef73cb2bd92 \
                100644
--- a/llvm/include/llvm/DebugInfo/GSYM/Header.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/Header.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_DEBUGINFO_GSYM_HEADER_H
 #define LLVM_DEBUGINFO_GSYM_HEADER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 #include <cstddef>
diff --git a/llvm/include/llvm/DebugInfo/GSYM/InlineInfo.h \
b/llvm/include/llvm/DebugInfo/GSYM/InlineInfo.h index \
                03bc85396d99f35..f414665c2155e55 100644
--- a/llvm/include/llvm/DebugInfo/GSYM/InlineInfo.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/InlineInfo.h
@@ -12,6 +12,7 @@
 #include "llvm/DebugInfo/GSYM/ExtractRanges.h"
 #include "llvm/DebugInfo/GSYM/LineEntry.h"
 #include "llvm/DebugInfo/GSYM/LookupResult.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <stdint.h>
 #include <vector>
diff --git a/llvm/include/llvm/DebugInfo/GSYM/LineEntry.h \
b/llvm/include/llvm/DebugInfo/GSYM/LineEntry.h index e68624b21929ed8..968fdebb8b0b6d0 \
                100644
--- a/llvm/include/llvm/DebugInfo/GSYM/LineEntry.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/LineEntry.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_GSYM_LINEENTRY_H
 
 #include "llvm/DebugInfo/GSYM/ExtractRanges.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace gsym {
diff --git a/llvm/include/llvm/DebugInfo/GSYM/LineTable.h \
b/llvm/include/llvm/DebugInfo/GSYM/LineTable.h index 7749e5e4fbb3b84..b3232f077779bb3 \
                100644
--- a/llvm/include/llvm/DebugInfo/GSYM/LineTable.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/LineTable.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_GSYM_LINETABLE_H
 
 #include "llvm/DebugInfo/GSYM/LineEntry.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 #include <vector>
diff --git a/llvm/include/llvm/DebugInfo/GSYM/LookupResult.h \
b/llvm/include/llvm/DebugInfo/GSYM/LookupResult.h index \
                9ccc96fbb4d5c6b..bf64998c9e84ede 100644
--- a/llvm/include/llvm/DebugInfo/GSYM/LookupResult.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/LookupResult.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/AddressRanges.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <inttypes.h>
 #include <vector>
 
diff --git a/llvm/include/llvm/DebugInfo/GSYM/ObjectFileTransformer.h \
b/llvm/include/llvm/DebugInfo/GSYM/ObjectFileTransformer.h index \
                dcbda39a769620c..600fc531b8ba8ac 100644
--- a/llvm/include/llvm/DebugInfo/GSYM/ObjectFileTransformer.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/ObjectFileTransformer.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_DEBUGINFO_GSYM_OBJECTFILETRANSFORMER_H
 #define LLVM_DEBUGINFO_GSYM_OBJECTFILETRANSFORMER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/GSYM/StringTable.h \
b/llvm/include/llvm/DebugInfo/GSYM/StringTable.h index \
                d9c9ede91be5f7c..3ad4db78a0feab4 100644
--- a/llvm/include/llvm/DebugInfo/GSYM/StringTable.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/StringTable.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/StringRef.h"
 #include "llvm/DebugInfo/GSYM/ExtractRanges.h"
+#include "llvm/Support/Compiler.h"
 #include <stdint.h>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVCompare.h \
b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVCompare.h index \
                4019ea6f1744834..677c91b616c0f1f 100644
--- a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVCompare.h
+++ b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVCompare.h
@@ -15,6 +15,7 @@
 #define LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVCOMPARE_H
 
 #include "llvm/DebugInfo/LogicalView/Core/LVObject.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace logicalview {
diff --git a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVElement.h \
b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVElement.h index \
                17fa04040ad7743..21bf3234d9e8a5b 100644
--- a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVElement.h
+++ b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVElement.h
@@ -16,6 +16,7 @@
 
 #include "llvm/DebugInfo/LogicalView/Core/LVObject.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include <map>
 #include <set>
 #include <vector>
diff --git a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVLine.h \
b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVLine.h index \
                c335c34e372b9f7..a57a1e4da49c28e 100644
--- a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVLine.h
+++ b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVLine.h
@@ -15,6 +15,7 @@
 #define LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVLINE_H
 
 #include "llvm/DebugInfo/LogicalView/Core/LVElement.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace logicalview {
diff --git a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVLocation.h \
b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVLocation.h index \
                3b556f9927832dd..a552b2cb44ac108 100644
--- a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVLocation.h
+++ b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVLocation.h
@@ -15,6 +15,7 @@
 #define LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVLOCATION_H
 
 #include "llvm/DebugInfo/LogicalView/Core/LVObject.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace logicalview {
diff --git a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVObject.h \
b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVObject.h index \
                ca429d2c289329c..b34c60994e952ab 100644
--- a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVObject.h
+++ b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVObject.h
@@ -18,6 +18,7 @@
 #include "llvm/DebugInfo/CodeView/CodeView.h"
 #include "llvm/DebugInfo/CodeView/TypeIndex.h"
 #include "llvm/DebugInfo/LogicalView/Core/LVSupport.h"
+#include "llvm/Support/Compiler.h"
 #include <limits>
 #include <list>
 #include <map>
diff --git a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVOptions.h \
b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVOptions.h index \
                a0a360c0a434f91..7a8c00957db9d7e 100644
--- a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVOptions.h
+++ b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVOptions.h
@@ -19,6 +19,7 @@
 #include "llvm/DebugInfo/LogicalView/Core/LVScope.h"
 #include "llvm/DebugInfo/LogicalView/Core/LVSymbol.h"
 #include "llvm/DebugInfo/LogicalView/Core/LVType.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Regex.h"
 #include <set>
 #include <string>
diff --git a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVRange.h \
b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVRange.h index \
                3ec0ccb31168fc1..6e41cd9fc76cb63 100644
--- a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVRange.h
+++ b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVRange.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/IntervalTree.h"
 #include "llvm/DebugInfo/LogicalView/Core/LVObject.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace logicalview {
diff --git a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVReader.h \
b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVReader.h index \
                9ce26398e48dfb3..213419d1a22c7d0 100644
--- a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVReader.h
+++ b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVReader.h
@@ -16,6 +16,7 @@
 
 #include "llvm/DebugInfo/LogicalView/Core/LVOptions.h"
 #include "llvm/DebugInfo/LogicalView/Core/LVRange.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Errc.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/ScopedPrinter.h"
diff --git a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVScope.h \
b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVScope.h index \
                1b3c377cd7dbba0..058e4f3e6dd5126 100644
--- a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVScope.h
+++ b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVScope.h
@@ -18,6 +18,7 @@
 #include "llvm/DebugInfo/LogicalView/Core/LVLocation.h"
 #include "llvm/DebugInfo/LogicalView/Core/LVSort.h"
 #include "llvm/Object/ObjectFile.h"
+#include "llvm/Support/Compiler.h"
 #include <list>
 #include <map>
 #include <set>
diff --git a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVSort.h \
b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVSort.h index \
                01f0b1880fbc3a6..2086d08eab84c5d 100644
--- a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVSort.h
+++ b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVSort.h
@@ -13,6 +13,8 @@
 #ifndef LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVSORT_H
 #define LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVSORT_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 namespace logicalview {
 
diff --git a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVStringPool.h \
b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVStringPool.h index \
                4c596b5b1dde732..e10b99730a7ab03 100644
--- a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVStringPool.h
+++ b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVStringPool.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/StringMap.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/Format.h"
 #include "llvm/Support/raw_ostream.h"
diff --git a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVSupport.h \
b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVSupport.h index \
                50f2c9a09ff5def..c3ee07a2b244e38 100644
--- a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVSupport.h
+++ b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVSupport.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/SmallString.h"
 #include "llvm/ADT/Twine.h"
 #include "llvm/DebugInfo/LogicalView/Core/LVStringPool.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/Format.h"
 #include "llvm/Support/Path.h"
diff --git a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVSymbol.h \
b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVSymbol.h index \
                25bfa9eb77d8ae9..5ab45e2fa5678f9 100644
--- a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVSymbol.h
+++ b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVSymbol.h
@@ -15,6 +15,7 @@
 #define LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVSYMBOL_H
 
 #include "llvm/DebugInfo/LogicalView/Core/LVElement.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace logicalview {
diff --git a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVType.h \
b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVType.h index \
                28881b3c95b17dd..b2d2702b2e229fe 100644
--- a/llvm/include/llvm/DebugInfo/LogicalView/Core/LVType.h
+++ b/llvm/include/llvm/DebugInfo/LogicalView/Core/LVType.h
@@ -15,6 +15,7 @@
 #define LLVM_DEBUGINFO_LOGICALVIEW_CORE_LVTYPE_H
 
 #include "llvm/DebugInfo/LogicalView/Core/LVElement.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace logicalview {
diff --git a/llvm/include/llvm/DebugInfo/LogicalView/LVReaderHandler.h \
b/llvm/include/llvm/DebugInfo/LogicalView/LVReaderHandler.h index \
                bf30501d00c1f6e..9a8a6fd4a4095d3 100644
--- a/llvm/include/llvm/DebugInfo/LogicalView/LVReaderHandler.h
+++ b/llvm/include/llvm/DebugInfo/LogicalView/LVReaderHandler.h
@@ -19,6 +19,7 @@
 #include "llvm/Object/Archive.h"
 #include "llvm/Object/MachOUniversal.h"
 #include "llvm/Object/ObjectFile.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/Support/ScopedPrinter.h"
 #include <string>
diff --git a/llvm/include/llvm/DebugInfo/LogicalView/Readers/LVBinaryReader.h \
b/llvm/include/llvm/DebugInfo/LogicalView/Readers/LVBinaryReader.h index \
                a66cf4608823bee..911af0e7891bbd3 100644
--- a/llvm/include/llvm/DebugInfo/LogicalView/Readers/LVBinaryReader.h
+++ b/llvm/include/llvm/DebugInfo/LogicalView/Readers/LVBinaryReader.h
@@ -26,6 +26,7 @@
 #include "llvm/MC/TargetRegistry.h"
 #include "llvm/Object/COFF.h"
 #include "llvm/Object/ObjectFile.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace logicalview {
diff --git a/llvm/include/llvm/DebugInfo/LogicalView/Readers/LVCodeViewReader.h \
b/llvm/include/llvm/DebugInfo/LogicalView/Readers/LVCodeViewReader.h index \
                8a32210bac3c9cc..f419b348f08a6f5 100644
--- a/llvm/include/llvm/DebugInfo/LogicalView/Readers/LVCodeViewReader.h
+++ b/llvm/include/llvm/DebugInfo/LogicalView/Readers/LVCodeViewReader.h
@@ -26,6 +26,7 @@
 #include "llvm/Support/BinaryByteStream.h"
 #include "llvm/Support/BinaryItemStream.h"
 #include "llvm/Support/BinaryStreamArray.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 template <> struct BinaryItemTraits<codeview::CVType> {
diff --git a/llvm/include/llvm/DebugInfo/LogicalView/Readers/LVCodeViewVisitor.h \
b/llvm/include/llvm/DebugInfo/LogicalView/Readers/LVCodeViewVisitor.h index \
                3c461fd9e1e9260..d23ff9d64310929 100644
--- a/llvm/include/llvm/DebugInfo/LogicalView/Readers/LVCodeViewVisitor.h
+++ b/llvm/include/llvm/DebugInfo/LogicalView/Readers/LVCodeViewVisitor.h
@@ -24,6 +24,7 @@
 #include "llvm/DebugInfo/PDB/Native/InputFile.h"
 #include "llvm/Object/Binary.h"
 #include "llvm/Object/ObjectFile.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <stack>
 #include <utility>
diff --git a/llvm/include/llvm/DebugInfo/LogicalView/Readers/LVELFReader.h \
b/llvm/include/llvm/DebugInfo/LogicalView/Readers/LVELFReader.h index \
                0837b886a273a62..da210ec1ee19007 100644
--- a/llvm/include/llvm/DebugInfo/LogicalView/Readers/LVELFReader.h
+++ b/llvm/include/llvm/DebugInfo/LogicalView/Readers/LVELFReader.h
@@ -17,6 +17,7 @@
 #include "llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h"
 #include "llvm/DebugInfo/DWARF/DWARFContext.h"
 #include "llvm/DebugInfo/LogicalView/Readers/LVBinaryReader.h"
+#include "llvm/Support/Compiler.h"
 #include <unordered_set>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/MSF/IMSFFile.h \
b/llvm/include/llvm/DebugInfo/MSF/IMSFFile.h index 7e80f96b89ae1bf..9e096f7c15b90b7 \
                100644
--- a/llvm/include/llvm/DebugInfo/MSF/IMSFFile.h
+++ b/llvm/include/llvm/DebugInfo/MSF/IMSFFile.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_MSF_IMSFFILE_H
 
 #include "llvm/ADT/ArrayRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/DebugInfo/MSF/MSFBuilder.h \
b/llvm/include/llvm/DebugInfo/MSF/MSFBuilder.h index 2ac18a8efaba829..ae18bc5ea728aa9 \
                100644
--- a/llvm/include/llvm/DebugInfo/MSF/MSFBuilder.h
+++ b/llvm/include/llvm/DebugInfo/MSF/MSFBuilder.h
@@ -13,6 +13,7 @@
 #include "llvm/ADT/BitVector.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 #include <utility>
diff --git a/llvm/include/llvm/DebugInfo/MSF/MSFCommon.h \
b/llvm/include/llvm/DebugInfo/MSF/MSFCommon.h index 0520b94ea3dd355..3009532608dc65d \
                100644
--- a/llvm/include/llvm/DebugInfo/MSF/MSFCommon.h
+++ b/llvm/include/llvm/DebugInfo/MSF/MSFCommon.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/BitVector.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MathExtras.h"
diff --git a/llvm/include/llvm/DebugInfo/MSF/MSFError.h \
b/llvm/include/llvm/DebugInfo/MSF/MSFError.h index 0d0a43102a9b08e..8360073508228f2 \
                100644
--- a/llvm/include/llvm/DebugInfo/MSF/MSFError.h
+++ b/llvm/include/llvm/DebugInfo/MSF/MSFError.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_DEBUGINFO_MSF_MSFERROR_H
 #define LLVM_DEBUGINFO_MSF_MSFERROR_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/MSF/MappedBlockStream.h \
b/llvm/include/llvm/DebugInfo/MSF/MappedBlockStream.h index \
                b5f0596fceed33b..5ac36a0e53bee29 100644
--- a/llvm/include/llvm/DebugInfo/MSF/MappedBlockStream.h
+++ b/llvm/include/llvm/DebugInfo/MSF/MappedBlockStream.h
@@ -15,6 +15,7 @@
 #include "llvm/Support/Allocator.h"
 #include "llvm/Support/BinaryStream.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h \
b/llvm/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h index \
                49ba20af7263601..cf09d3f5992bee3 100644
--- a/llvm/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h
+++ b/llvm/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h
@@ -12,6 +12,7 @@
 #include "llvm/DebugInfo/PDB/IPDBEnumChildren.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <cstdint>
 #include <memory>
diff --git a/llvm/include/llvm/DebugInfo/PDB/DIA/DIAError.h \
b/llvm/include/llvm/DebugInfo/PDB/DIA/DIAError.h index \
                96d960599f7ef7b..cffdf90dbf2fd49 100644
--- a/llvm/include/llvm/DebugInfo/PDB/DIA/DIAError.h
+++ b/llvm/include/llvm/DebugInfo/PDB/DIA/DIAError.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_PDB_DIA_DIAERROR_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/PDB/GenericError.h \
b/llvm/include/llvm/DebugInfo/PDB/GenericError.h index \
                1121343ed64f8c2..48c2480b6cfbad4 100644
--- a/llvm/include/llvm/DebugInfo/PDB/GenericError.h
+++ b/llvm/include/llvm/DebugInfo/PDB/GenericError.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_DEBUGINFO_PDB_GENERICERROR_H
 #define LLVM_DEBUGINFO_PDB_GENERICERROR_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/PDB/IPDBDataStream.h \
b/llvm/include/llvm/DebugInfo/PDB/IPDBDataStream.h index \
                fb18396cafe31e8..7f4f5e92cb8690a 100644
--- a/llvm/include/llvm/DebugInfo/PDB/IPDBDataStream.h
+++ b/llvm/include/llvm/DebugInfo/PDB/IPDBDataStream.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_PDB_IPDBDATASTREAM_H
 
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <optional>
 #include <string>
diff --git a/llvm/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h \
b/llvm/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h index \
                93525b716791550..f7de588bee3190a 100644
--- a/llvm/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h
+++ b/llvm/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_PDB_IPDBENUMCHILDREN_H
 
 #include "llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 #include <memory>
diff --git a/llvm/include/llvm/DebugInfo/PDB/IPDBFrameData.h \
b/llvm/include/llvm/DebugInfo/PDB/IPDBFrameData.h index \
                24138b380db4aee..d8dd3b8c3fff095 100644
--- a/llvm/include/llvm/DebugInfo/PDB/IPDBFrameData.h
+++ b/llvm/include/llvm/DebugInfo/PDB/IPDBFrameData.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_DEBUGINFO_PDB_IPDBFRAMEDATA_H
 #define LLVM_DEBUGINFO_PDB_IPDBFRAMEDATA_H
 
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <string>
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/IPDBInjectedSource.h \
b/llvm/include/llvm/DebugInfo/PDB/IPDBInjectedSource.h index \
                6ee6c7cc8fc1d2c..cbda789ddab48aa 100644
--- a/llvm/include/llvm/DebugInfo/PDB/IPDBInjectedSource.h
+++ b/llvm/include/llvm/DebugInfo/PDB/IPDBInjectedSource.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_DEBUGINFO_PDB_IPDBINJECTEDSOURCE_H
 #define LLVM_DEBUGINFO_PDB_IPDBINJECTEDSOURCE_H
 
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <string>
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/IPDBLineNumber.h \
b/llvm/include/llvm/DebugInfo/PDB/IPDBLineNumber.h index \
                47b6397099b7811..f7c7d70020f6085 100644
--- a/llvm/include/llvm/DebugInfo/PDB/IPDBLineNumber.h
+++ b/llvm/include/llvm/DebugInfo/PDB/IPDBLineNumber.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_DEBUGINFO_PDB_IPDBLINENUMBER_H
 #define LLVM_DEBUGINFO_PDB_IPDBLINENUMBER_H
 
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h \
b/llvm/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h index \
                f59e933ca575f7c..6aa33e13a9a865c 100644
--- a/llvm/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h
+++ b/llvm/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h
@@ -13,6 +13,7 @@
 #include "llvm/ADT/BitmaskEnum.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/DebugInfo/CodeView/CodeView.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/PDB/IPDBSectionContrib.h \
b/llvm/include/llvm/DebugInfo/PDB/IPDBSectionContrib.h index \
                c5cf4bbe556007e..6065459c40527ea 100644
--- a/llvm/include/llvm/DebugInfo/PDB/IPDBSectionContrib.h
+++ b/llvm/include/llvm/DebugInfo/PDB/IPDBSectionContrib.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_PDB_IPDBSECTIONCONTRIB_H
 
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace pdb {
diff --git a/llvm/include/llvm/DebugInfo/PDB/IPDBSession.h \
b/llvm/include/llvm/DebugInfo/PDB/IPDBSession.h index \
                7e38654c6550423..32e454a65ef98f6 100644
--- a/llvm/include/llvm/DebugInfo/PDB/IPDBSession.h
+++ b/llvm/include/llvm/DebugInfo/PDB/IPDBSession.h
@@ -13,6 +13,7 @@
 #include "PDBTypes.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/PDB/IPDBSourceFile.h \
b/llvm/include/llvm/DebugInfo/PDB/IPDBSourceFile.h index \
                d7e49fb70580185..52d8ba87f27bb44 100644
--- a/llvm/include/llvm/DebugInfo/PDB/IPDBSourceFile.h
+++ b/llvm/include/llvm/DebugInfo/PDB/IPDBSourceFile.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_PDB_IPDBSOURCEFILE_H
 
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 #include <string>
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/IPDBTable.h \
b/llvm/include/llvm/DebugInfo/PDB/IPDBTable.h index 55ca230d58c41f1..1ed2e00d9f6843f \
                100644
--- a/llvm/include/llvm/DebugInfo/PDB/IPDBTable.h
+++ b/llvm/include/llvm/DebugInfo/PDB/IPDBTable.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_PDB_IPDBTABLE_H
 
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace pdb {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h index \
                1ecae5c32509e19..f34ecee173a8b5c 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h index \
                eda24e33869fef2..71826df8fb33c08 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h
@@ -15,6 +15,7 @@
 #include "llvm/DebugInfo/CodeView/DebugSubsectionRecord.h"
 #include "llvm/DebugInfo/PDB/Native/RawTypes.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 #include <string>
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleList.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleList.h index \
                de5b46f216721e3..d8d6e2935b60018 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleList.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleList.h
@@ -15,6 +15,7 @@
 #include "llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h"
 #include "llvm/Support/BinaryStreamArray.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include <cstddef>
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/DbiStream.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/DbiStream.h index \
                3f60130f5752904..aa7509b25641516 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/DbiStream.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/DbiStream.h
@@ -16,6 +16,7 @@
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
 #include "llvm/Support/BinaryStreamArray.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h index \
                9a84fc3e7c55cf7..df1883693067ac3 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h
@@ -14,6 +14,7 @@
 #include "llvm/BinaryFormat/COFF.h"
 #include "llvm/Object/COFF.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 #include "llvm/DebugInfo/CodeView/DebugFrameDataSubsection.h"
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/EnumTables.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/EnumTables.h index \
                dcc67f1e4a8cd91..6ecdc2034bb6bc8 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/EnumTables.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/EnumTables.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_PDB_NATIVE_ENUMTABLES_H
 
 #include "llvm/ADT/ArrayRef.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 template <typename T> struct EnumEntry;
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/FormatUtil.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/FormatUtil.h index \
                ed745eaf9727460..0371d899792e87a 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/FormatUtil.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/FormatUtil.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/DebugInfo/CodeView/CodeView.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/FormatAdapters.h"
 #include "llvm/Support/FormatVariadic.h"
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h index \
                28a72c887f25a5d..6387f9333086e49 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h
@@ -15,6 +15,7 @@
 #include "llvm/DebugInfo/PDB/Native/GlobalsStream.h"
 #include "llvm/DebugInfo/PDB/Native/RawConstants.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h index \
                2988bef4a75b296..e2210b278bd5e4d 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h
@@ -13,6 +13,7 @@
 #include "llvm/DebugInfo/CodeView/CVRecord.h"
 #include "llvm/DebugInfo/PDB/Native/RawTypes.h"
 #include "llvm/Support/BinaryStreamArray.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/Hash.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/Hash.h index \
                b048d878a12cd05..9186a99afdaf0c6 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/Hash.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/Hash.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/HashTable.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/HashTable.h index \
                eb03397ba694004..71c4045db11d421 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/HashTable.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/HashTable.h
@@ -14,6 +14,7 @@
 #include "llvm/DebugInfo/PDB/Native/RawError.h"
 #include "llvm/Support/BinaryStreamReader.h"
 #include "llvm/Support/BinaryStreamWriter.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/ISectionContribVisitor.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/ISectionContribVisitor.h index \
                da4078365ff55f1..503e63317848ac5 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/ISectionContribVisitor.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/ISectionContribVisitor.h
@@ -9,6 +9,8 @@
 #ifndef LLVM_DEBUGINFO_PDB_NATIVE_ISECTIONCONTRIBVISITOR_H
 #define LLVM_DEBUGINFO_PDB_NATIVE_ISECTIONCONTRIBVISITOR_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 namespace pdb {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/InfoStream.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/InfoStream.h index \
                625bab6a4378284..c8779c19fac568c 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/InfoStream.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/InfoStream.h
@@ -15,6 +15,7 @@
 #include "llvm/DebugInfo/PDB/Native/RawConstants.h"
 #include "llvm/Support/BinaryStream.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 
 #include "llvm/Support/Error.h"
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h index \
                4b77e321353f8fd..3b42e248c4da6e1 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/InfoStreamBuilder.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_DEBUGINFO_PDB_NATIVE_INFOSTREAMBUILDER_H
 #define LLVM_DEBUGINFO_PDB_NATIVE_INFOSTREAMBUILDER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 #include "llvm/DebugInfo/CodeView/GUID.h"
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h index \
                259c924d9d7c61b..905cf8d31ea1429 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/InjectedSourceStream.h
@@ -11,6 +11,7 @@
 
 #include "llvm/DebugInfo/MSF/MappedBlockStream.h"
 #include "llvm/DebugInfo/PDB/Native/HashTable.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/InputFile.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/InputFile.h index \
                834cd96b77b467c..51a73ca6f53d359 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/InputFile.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/InputFile.h
@@ -18,6 +18,7 @@
 #include "llvm/DebugInfo/PDB/Native/ModuleDebugStream.h"
 #include "llvm/Object/Binary.h"
 #include "llvm/Object/ObjectFile.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/LinePrinter.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/LinePrinter.h index \
                bb029e534c74e02..ce4375959848759 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/LinePrinter.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/LinePrinter.h
@@ -14,6 +14,7 @@
 #include "llvm/ADT/Twine.h"
 #include "llvm/DebugInfo/PDB/Native/FormatUtil.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/FormatVariadic.h"
 #include "llvm/Support/Regex.h"
 #include "llvm/Support/raw_ostream.h"
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h index \
                0caf9fffbad693e..7b14adc41c8fece 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h
@@ -14,6 +14,7 @@
 #include "llvm/DebugInfo/CodeView/DebugSubsectionRecord.h"
 #include "llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 #include <memory>
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NamedStreamMap.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NamedStreamMap.h index \
                18fbab0dd38c167..78f24522e8f674c 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NamedStreamMap.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NamedStreamMap.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/DebugInfo/PDB/Native/HashTable.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h index \
                50d437642d0f736..0ec2302a25098fb 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeCompilandSymbol.h
@@ -11,6 +11,7 @@
 
 #include "llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h"
 #include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace pdb {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumGlobals.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumGlobals.h index \
                c10e652efa8d264..7efe7bf76ceadee 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumGlobals.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumGlobals.h
@@ -12,6 +12,7 @@
 #include "llvm/DebugInfo/CodeView/CodeView.h"
 #include "llvm/DebugInfo/PDB/IPDBEnumChildren.h"
 #include "llvm/DebugInfo/PDB/PDBSymbol.h"
+#include "llvm/Support/Compiler.h"
 
 #include <vector>
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumInjectedSources.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumInjectedSources.h index \
                50d4c2db3c2aa32..93a4623942c3966 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumInjectedSources.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumInjectedSources.h
@@ -12,6 +12,7 @@
 #include "llvm/DebugInfo/PDB/IPDBEnumChildren.h"
 #include "llvm/DebugInfo/PDB/IPDBInjectedSource.h"
 #include "llvm/DebugInfo/PDB/Native/InjectedSourceStream.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace pdb {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumLineNumbers.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumLineNumbers.h index \
                a936b769d688ceb..90f5a7d01a3b729 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumLineNumbers.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumLineNumbers.h
@@ -12,6 +12,7 @@
 #include "llvm/DebugInfo/PDB/IPDBEnumChildren.h"
 #include "llvm/DebugInfo/PDB/IPDBLineNumber.h"
 #include "llvm/DebugInfo/PDB/Native/NativeLineNumber.h"
+#include "llvm/Support/Compiler.h"
 #include <vector>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumModules.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumModules.h index \
                94f1ee18ed9f43c..2d76f180e9a4202 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumModules.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumModules.h
@@ -11,6 +11,7 @@
 
 #include "llvm/DebugInfo/PDB/IPDBEnumChildren.h"
 #include "llvm/DebugInfo/PDB/PDBSymbol.h"
+#include "llvm/Support/Compiler.h"
 namespace llvm {
 namespace pdb {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumSymbols.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumSymbols.h index \
                5fc91675f2092e3..7aee9d8e7acfcae 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumSymbols.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumSymbols.h
@@ -12,6 +12,7 @@
 #include "llvm/DebugInfo/PDB/IPDBEnumChildren.h"
 #include "llvm/DebugInfo/PDB/PDBSymbol.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 #include <vector>
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h index \
                2ca000c1c0fe6e5..ea461064fa4fd5e 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h
@@ -13,6 +13,7 @@
 #include "llvm/DebugInfo/CodeView/TypeIndex.h"
 #include "llvm/DebugInfo/PDB/IPDBEnumChildren.h"
 #include "llvm/DebugInfo/PDB/PDBSymbol.h"
+#include "llvm/Support/Compiler.h"
 
 #include <vector>
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h index \
                82fdff130c4f7f4..31e61e8318193ca 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeExeSymbol.h
@@ -12,6 +12,7 @@
 #include "llvm/DebugInfo/CodeView/GUID.h"
 #include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace pdb {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeFunctionSymbol.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeFunctionSymbol.h index \
                c15e22f61077a48..53d4f747c9e1849 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeFunctionSymbol.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeFunctionSymbol.h
@@ -13,6 +13,7 @@
 #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
 #include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class raw_ostream;
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeInlineSiteSymbol.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeInlineSiteSymbol.h index \
                3467ac912162e51..a702c2edd8ce950 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeInlineSiteSymbol.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeInlineSiteSymbol.h
@@ -13,6 +13,7 @@
 #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
 #include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace pdb {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeLineNumber.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeLineNumber.h index \
                53f2985833fd91f..df793616ee50361 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeLineNumber.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeLineNumber.h
@@ -11,6 +11,7 @@
 
 #include "llvm/DebugInfo/CodeView/Line.h"
 #include "llvm/DebugInfo/PDB/IPDBLineNumber.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace pdb {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativePublicSymbol.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativePublicSymbol.h index \
                43de80507d02341..e9ae293cf1e603b 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativePublicSymbol.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativePublicSymbol.h
@@ -11,6 +11,7 @@
 
 #include "llvm/DebugInfo/CodeView/SymbolRecord.h"
 #include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h index \
                4133be2207136ae..699e2d78fc8cbd8 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_PDB_NATIVE_NATIVERAWSYMBOL_H
 
 #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <memory>
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h index \
                95be7d09aae98ff..01207800d8fa6de 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h
@@ -15,6 +15,7 @@
 #include "llvm/DebugInfo/PDB/Native/SymbolCache.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeSourceFile.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeSourceFile.h index \
                c6653368bc0cee7..087849116dc69f9 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeSourceFile.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeSourceFile.h
@@ -12,6 +12,7 @@
 #include "llvm/DebugInfo/CodeView/DebugChecksumsSubsection.h"
 #include "llvm/DebugInfo/PDB/IPDBSourceFile.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace pdb {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeSymbolEnumerator.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeSymbolEnumerator.h index \
                ab4abc4d3c2cc7c..d6c5027db993783 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeSymbolEnumerator.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeSymbolEnumerator.h
@@ -13,6 +13,7 @@
 #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
 #include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeArray.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeArray.h index \
                262864fd709fa3a..126cd14c0e3074c 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeArray.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeArray.h
@@ -13,6 +13,7 @@
 
 #include "llvm/DebugInfo/CodeView/TypeRecord.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace pdb {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h index \
                8bb09f05d0bc64b..e7e16b31bd28a8f 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeBuiltin.h
@@ -12,6 +12,7 @@
 #include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
 
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace pdb {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeEnum.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeEnum.h index \
                01f13ce1073e1a7..a10a0f1cde41c11 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeEnum.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeEnum.h
@@ -14,6 +14,7 @@
 #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
 #include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class raw_ostream;
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeFunctionSig.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeFunctionSig.h index \
                47ea722313c3638..dd5603d2da05a27 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeFunctionSig.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeFunctionSig.h
@@ -14,6 +14,7 @@
 #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
 #include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace pdb {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypePointer.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypePointer.h index \
                184e00086849ce6..d0503d942dafbe3 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypePointer.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypePointer.h
@@ -14,6 +14,7 @@
 #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
 #include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace pdb {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeTypedef.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeTypedef.h index \
                ce4ebcd00c4a8e1..b05b5d12f2562c5 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeTypedef.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeTypedef.h
@@ -13,6 +13,7 @@
 #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
 #include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeUDT.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeUDT.h index \
                79924a78cd218c9..e9d808205e43abd 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeUDT.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeUDT.h
@@ -14,6 +14,7 @@
 #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
 #include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h index \
                92d51706c1dac70..41a898d6f1a66ca 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/NativeTypeVTShape.h
@@ -14,6 +14,7 @@
 #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
 #include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace pdb {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h index \
                1ea92ed4bf21f83..76be171cac0b0d8 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h
@@ -13,6 +13,7 @@
 #include "llvm/DebugInfo/MSF/MSFCommon.h"
 #include "llvm/Support/Allocator.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h index \
                c23d958f8ed0612..f678b2be20e6928 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h
@@ -15,6 +15,7 @@
 #include "llvm/DebugInfo/PDB/Native/NamedStreamMap.h"
 #include "llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include <memory>
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTable.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTable.h index \
                4336cd398baf1e5..daacd778f8c5b16 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTable.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTable.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/DebugInfo/CodeView/DebugStringTableSubsection.h"
 #include "llvm/Support/BinaryStreamArray.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h index \
                986bd3645108ab3..e60bd547697ccdb 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/PDBStringTableBuilder.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/StringRef.h"
 #include "llvm/DebugInfo/CodeView/DebugStringTableSubsection.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/PublicsStream.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/PublicsStream.h index \
                a59a752ff91167b..2159bba18f3115c 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/PublicsStream.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/PublicsStream.h
@@ -11,6 +11,7 @@
 
 #include "llvm/DebugInfo/PDB/Native/GlobalsStream.h"
 #include "llvm/Support/BinaryStreamArray.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/RawError.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/RawError.h index \
                8836adf9497f432..d61e0f009e8b9c5 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/RawError.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/RawError.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_DEBUGINFO_PDB_NATIVE_RAWERROR_H
 #define LLVM_DEBUGINFO_PDB_NATIVE_RAWERROR_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/RawTypes.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/RawTypes.h index \
                4a9db4962fbbc16..f02cb4a88d69a21 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/RawTypes.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/RawTypes.h
@@ -11,6 +11,7 @@
 
 #include "llvm/DebugInfo/CodeView/GUID.h"
 #include "llvm/DebugInfo/CodeView/TypeRecord.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/SymbolCache.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/SymbolCache.h index \
                7c5b6b9e1bdf61a..714e796a9b9e7ee 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/SymbolCache.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/SymbolCache.h
@@ -18,6 +18,7 @@
 #include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
 #include "llvm/DebugInfo/PDB/Native/NativeSourceFile.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 #include <memory>
 #include <vector>
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/SymbolStream.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/SymbolStream.h index \
                c2f7eb04d16e1e6..e72d9d37db94a83 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/SymbolStream.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/SymbolStream.h
@@ -11,6 +11,7 @@
 
 #include "llvm/DebugInfo/CodeView/CVRecord.h"
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/TpiHashing.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/TpiHashing.h index \
                3cdb890d81d359d..303356cc7d04e94 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/TpiHashing.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/TpiHashing.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_PDB_NATIVE_TPIHASHING_H
 
 #include "llvm/DebugInfo/CodeView/TypeRecord.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/TpiStream.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/TpiStream.h index \
                4c413abb2bf0277..6c8a8200b613bfa 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/TpiStream.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/TpiStream.h
@@ -14,6 +14,7 @@
 #include "llvm/DebugInfo/PDB/Native/RawConstants.h"
 #include "llvm/Support/BinaryStreamArray.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 
 #include "llvm/Support/Error.h"
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h \
b/llvm/include/llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h index \
                855b5fe1f931186..4852dfa04840724 100644
--- a/llvm/include/llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h
+++ b/llvm/include/llvm/DebugInfo/PDB/Native/TpiStreamBuilder.h
@@ -14,6 +14,7 @@
 #include "llvm/DebugInfo/PDB/Native/RawConstants.h"
 #include "llvm/Support/Allocator.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 #include <vector>
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDB.h \
b/llvm/include/llvm/DebugInfo/PDB/PDB.h index 6d734dc2f243ac4..0803af881392b2b 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDB.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDB.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/StringRef.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <memory>
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBContext.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBContext.h index 3163c0a1dae034e..fbcae9763e66e4f \
                100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBContext.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBContext.h
@@ -11,6 +11,7 @@
 
 #include "llvm/DebugInfo/DIContext.h"
 #include "llvm/DebugInfo/PDB/IPDBSession.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <memory>
 #include <string>
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBExtras.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBExtras.h index 802d18a069ee44c..4d7e30b6a7190fc \
                100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBExtras.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBExtras.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/DebugInfo/CodeView/CodeView.h"
 #include "llvm/DebugInfo/PDB/PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 #include <cstdint>
 #include <unordered_map>
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymDumper.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymDumper.h index \
                f81b15f2353d702..8e2915f3b718bc3 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymDumper.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymDumper.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_PDB_PDBSYMDUMPER_H
 
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h index 4e34b75b6117e2f..8253f10f654ca0d \
                100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h
@@ -13,6 +13,7 @@
 #include "PDBExtras.h"
 #include "PDBTypes.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 
 #define FORWARD_SYMBOL_METHOD(MethodName)                                      \
   decltype(auto) MethodName() const { return RawSymbol->MethodName(); }
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h index \
                c8d3d0b7bb9635b..fc9f017435e471b 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h
@@ -10,6 +10,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h index \
                09142227b01762d..30c708a2831c10e 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h
@@ -10,6 +10,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h index \
                ca8b39d03f86f20..d804b499e0399bf 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h
@@ -10,6 +10,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 #include <string>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h index \
                46c1592685338a1..b1fcd0994d3c83a 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h index \
                cba082f2ff19668..edebb38707de9fb 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h index \
                c78b47ce99248bc..661c079937e3377 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h
@@ -12,6 +12,7 @@
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolData.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolData.h index \
                61e67d1368a88b2..d629046d13d77d5 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolData.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolData.h
@@ -12,6 +12,7 @@
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
 #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolExe.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolExe.h index \
                cde66d399243836..e523d980c18be9c 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolExe.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolExe.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h index \
                bfc7f7689718284..15c2762591de6ae 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h
@@ -13,6 +13,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h index \
                09c6f47289608e5..775b4bf7663f443 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h index \
                843a8348a2f0be6..d7be5099f06e104 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h index \
                148802a47cbcced..2396a88498577af 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h index \
                a757cc02624b10e..240d98d763a1936 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h index \
                2b81a63995e6ed6..0e141ead88eec51 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h index \
                496141e5fa68fd3..75583ec16c10e65 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h index \
                c74ac3fb9cce1f5..83221b654d90ce6 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h
@@ -13,6 +13,7 @@
 #include "PDBTypes.h"
 
 #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h index \
                b923983095f335c..83e6c8174ccda6e 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h index \
                b15abf7bedfd7de..cdef3fa869d0d08 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h index \
                e7570b41dd21b0b..0a0d7bb3e285c5e 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h index \
                ee1f736c17a04e8..99b42f5aa58ca1a 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h
@@ -13,6 +13,7 @@
 #include "PDBTypes.h"
 
 #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h index \
                9fde421162614d7..ca8a613c5080e54 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h index \
                71decff722a5113..b1cb4c4b7a5db11 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h index \
                ceb4bff5b7b4261..fcca9e4a5f1f04f 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h index \
                866bf520a3b26a3..ae568811f092cae 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h index \
                1b43ef9a21bd2b9..feb9a3856653943 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h index \
                3f37730cf1df4b3..5654b60c1f5a198 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h index \
                a3a49a4b619a581..2f99f251e080179 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h
@@ -13,6 +13,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h index \
                6223bee98670717..6cee234c9fdfd24 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h index \
                bec0a9970a9f2b0..a17d0f1d793132a 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h index \
                a53af49bc9e018e..400299e8bc4b003 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h
@@ -10,6 +10,7 @@
 #define LLVM_DEBUGINFO_PDB_PDBSYMBOLUNKNOWN_H
 
 #include "PDBSymbol.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h index \
                dde25a023d000ac..28ff189234112da 100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h
@@ -11,6 +11,7 @@
 
 #include "PDBSymbol.h"
 #include "PDBTypes.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h \
b/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h index b6a794ad7e76095..3b04fc780ac97ae \
                100644
--- a/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h
+++ b/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h
@@ -14,6 +14,7 @@
 #include "llvm/DebugInfo/PDB/IPDBEnumChildren.h"
 #include "llvm/DebugInfo/PDB/IPDBFrameData.h"
 #include "llvm/DebugInfo/PDB/Native/RawTypes.h"
+#include "llvm/Support/Compiler.h"
 #include <cctype>
 #include <cstddef>
 #include <cstdint>
diff --git a/llvm/include/llvm/DebugInfo/PDB/UDTLayout.h \
b/llvm/include/llvm/DebugInfo/PDB/UDTLayout.h index 8631c412f114254..3c24b957a35a648 \
                100644
--- a/llvm/include/llvm/DebugInfo/PDB/UDTLayout.h
+++ b/llvm/include/llvm/DebugInfo/PDB/UDTLayout.h
@@ -18,6 +18,7 @@
 #include "llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h"
 #include "llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h"
 #include "llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <memory>
 #include <string>
diff --git a/llvm/include/llvm/DebugInfo/Symbolize/DIPrinter.h \
b/llvm/include/llvm/DebugInfo/Symbolize/DIPrinter.h index \
                b89f1da5857acfd..0a2dfdb07f2fa20 100644
--- a/llvm/include/llvm/DebugInfo/Symbolize/DIPrinter.h
+++ b/llvm/include/llvm/DebugInfo/Symbolize/DIPrinter.h
@@ -15,6 +15,7 @@
 #define LLVM_DEBUGINFO_SYMBOLIZE_DIPRINTER_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/JSON.h"
 #include <memory>
 #include <vector>
diff --git a/llvm/include/llvm/DebugInfo/Symbolize/Markup.h \
b/llvm/include/llvm/DebugInfo/Symbolize/Markup.h index \
                37e1d2748e31c31..d3698a440daea88 100644
--- a/llvm/include/llvm/DebugInfo/Symbolize/Markup.h
+++ b/llvm/include/llvm/DebugInfo/Symbolize/Markup.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/StringSet.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Regex.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h \
b/llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h index \
                a1514d91702b9f1..1e722319e8dbcce 100644
--- a/llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h
+++ b/llvm/include/llvm/DebugInfo/Symbolize/MarkupFilter.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/DebugInfo/Symbolize/Markup.h"
 #include "llvm/Object/BuildID.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/WithColor.h"
 #include "llvm/Support/raw_ostream.h"
 #include <map>
diff --git a/llvm/include/llvm/DebugInfo/Symbolize/SymbolizableModule.h \
b/llvm/include/llvm/DebugInfo/Symbolize/SymbolizableModule.h index \
                51e92b83eadbac0..7037afa26893053 100644
--- a/llvm/include/llvm/DebugInfo/Symbolize/SymbolizableModule.h
+++ b/llvm/include/llvm/DebugInfo/Symbolize/SymbolizableModule.h
@@ -13,6 +13,7 @@
 #define LLVM_DEBUGINFO_SYMBOLIZE_SYMBOLIZABLEMODULE_H
 
 #include "llvm/DebugInfo/DIContext.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h \
b/llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h index \
                075dbe3e0e372ed..1db5746907c2f12 100644
--- a/llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h
+++ b/llvm/include/llvm/DebugInfo/Symbolize/SymbolizableObjectFile.h
@@ -15,6 +15,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/DebugInfo/DIContext.h"
 #include "llvm/DebugInfo/Symbolize/SymbolizableModule.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 #include <memory>
diff --git a/llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h \
b/llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h index \
                99a7f219baaa09f..31bda033ae57216 100644
--- a/llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h
+++ b/llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h
@@ -19,6 +19,7 @@
 #include "llvm/DebugInfo/DIContext.h"
 #include "llvm/Object/Binary.h"
 #include "llvm/Object/BuildID.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <algorithm>
 #include <cstdint>
diff --git a/llvm/include/llvm/Debuginfod/BuildIDFetcher.h \
b/llvm/include/llvm/Debuginfod/BuildIDFetcher.h index \
                f0ecea1821257b9..264e43ac22a221e 100644
--- a/llvm/include/llvm/Debuginfod/BuildIDFetcher.h
+++ b/llvm/include/llvm/Debuginfod/BuildIDFetcher.h
@@ -16,6 +16,7 @@
 #define LLVM_DEBUGINFOD_DIFETCHER_H
 
 #include "llvm/Object/BuildID.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Debuginfod/Debuginfod.h \
b/llvm/include/llvm/Debuginfod/Debuginfod.h index ec7f5691dda4fbf..33831bd4535a20c \
                100644
--- a/llvm/include/llvm/Debuginfod/Debuginfod.h
+++ b/llvm/include/llvm/Debuginfod/Debuginfod.h
@@ -25,6 +25,7 @@
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Object/BuildID.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/Support/Mutex.h"
diff --git a/llvm/include/llvm/Debuginfod/HTTPClient.h \
b/llvm/include/llvm/Debuginfod/HTTPClient.h index 6ded55502f05511..a382727d99057dd \
                100644
--- a/llvm/include/llvm/Debuginfod/HTTPClient.h
+++ b/llvm/include/llvm/Debuginfod/HTTPClient.h
@@ -17,6 +17,7 @@
 
 #include "llvm/ADT/SmallString.h"
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MemoryBuffer.h"
 
diff --git a/llvm/include/llvm/Debuginfod/HTTPServer.h \
b/llvm/include/llvm/Debuginfod/HTTPServer.h index 15e611ec546f8c6..4ef2fc1def3589c \
                100644
--- a/llvm/include/llvm/Debuginfod/HTTPServer.h
+++ b/llvm/include/llvm/Debuginfod/HTTPServer.h
@@ -17,6 +17,7 @@
 #define LLVM_DEBUGINFOD_HTTPSERVER_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 #ifdef LLVM_ENABLE_HTTPLIB
diff --git a/llvm/include/llvm/Demangle/ItaniumDemangle.h \
b/llvm/include/llvm/Demangle/ItaniumDemangle.h index 68db8c62a29e512..398d02f10e4945c \
                100644
--- a/llvm/include/llvm/Demangle/ItaniumDemangle.h
+++ b/llvm/include/llvm/Demangle/ItaniumDemangle.h
@@ -19,6 +19,7 @@
 #include "DemangleConfig.h"
 #include "StringViewExtras.h"
 #include "Utility.h"
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <cassert>
 #include <cctype>
diff --git a/llvm/include/llvm/Demangle/MicrosoftDemangle.h \
b/llvm/include/llvm/Demangle/MicrosoftDemangle.h index \
                1529b803debe5a8..d76e2de83a50ff1 100644
--- a/llvm/include/llvm/Demangle/MicrosoftDemangle.h
+++ b/llvm/include/llvm/Demangle/MicrosoftDemangle.h
@@ -10,6 +10,7 @@
 #define LLVM_DEMANGLE_MICROSOFTDEMANGLE_H
 
 #include "llvm/Demangle/MicrosoftDemangleNodes.h"
+#include "llvm/Support/Compiler.h"
 
 #include <cassert>
 #include <string_view>
diff --git a/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h \
b/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h index \
                1913bff0ada7fd0..53dc23217fde10b 100644
--- a/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h
+++ b/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_DEMANGLE_MICROSOFTDEMANGLENODES_H
 #define LLVM_DEMANGLE_MICROSOFTDEMANGLENODES_H
 
+#include "llvm/Support/Compiler.h"
 #include <array>
 #include <cstdint>
 #include <string>
diff --git a/llvm/include/llvm/Demangle/Utility.h \
b/llvm/include/llvm/Demangle/Utility.h index a906d238cf447b4..fa6ab2d04bf27fb 100644
--- a/llvm/include/llvm/Demangle/Utility.h
+++ b/llvm/include/llvm/Demangle/Utility.h
@@ -17,6 +17,7 @@
 #define DEMANGLE_UTILITY_H
 
 #include "DemangleConfig.h"
+#include "llvm/Support/Compiler.h"
 
 #include <array>
 #include <cassert>
diff --git a/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h \
b/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h index \
                d26180a0f474644..087814c1ca107ea 100644
--- a/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h
+++ b/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h
@@ -25,6 +25,7 @@
 #include "llvm/Object/Binary.h"
 #include "llvm/Support/CBindingWrapping.h"
 #include "llvm/Support/CodeGen.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/Mutex.h"
 #include "llvm/Target/TargetMachine.h"
diff --git a/llvm/include/llvm/ExecutionEngine/GenericValue.h \
b/llvm/include/llvm/ExecutionEngine/GenericValue.h index \
                1ca989da1b7ee7a..347f7fcbc481bcf 100644
--- a/llvm/include/llvm/ExecutionEngine/GenericValue.h
+++ b/llvm/include/llvm/ExecutionEngine/GenericValue.h
@@ -14,6 +14,7 @@
 #define LLVM_EXECUTIONENGINE_GENERICVALUE_H
 
 #include "llvm/ADT/APInt.h"
+#include "llvm/Support/Compiler.h"
 #include <vector>
 
 namespace llvm {
diff --git a/llvm/include/llvm/ExecutionEngine/JITEventListener.h \
b/llvm/include/llvm/ExecutionEngine/JITEventListener.h index \
                effff2ea5cfab44..230b971d0b3a1da 100644
--- a/llvm/include/llvm/ExecutionEngine/JITEventListener.h
+++ b/llvm/include/llvm/ExecutionEngine/JITEventListener.h
@@ -19,6 +19,7 @@
 #include "llvm/ExecutionEngine/RuntimeDyld.h"
 #include "llvm/IR/DebugLoc.h"
 #include "llvm/Support/CBindingWrapping.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/COFF.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/COFF.h index \
                87d3648d37e8ba8..6f9780cbeb15d33 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/COFF.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/COFF.h
@@ -14,6 +14,7 @@
 #define LLVM_EXECUTIONENGINE_JITLINK_COFF_H
 
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace jitlink {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/COFF_x86_64.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/COFF_x86_64.h index \
                fff32d6d960933c..3c7558d42db7108 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/COFF_x86_64.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/COFF_x86_64.h
@@ -14,6 +14,7 @@
 #define LLVM_EXECUTIONENGINE_JITLINK_COFF_X86_64_H
 
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace jitlink {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/DWARFRecordSectionSplitter.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/DWARFRecordSectionSplitter.h index \
                d748d4b0fa5927f..50c43890b020efc 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/DWARFRecordSectionSplitter.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/DWARFRecordSectionSplitter.h
@@ -10,6 +10,7 @@
 #define LLVM_EXECUTIONENGINE_JITLINK_DWARFRECORDSECTIONSPLITTER_H
 
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace jitlink {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/EHFrameSupport.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/EHFrameSupport.h index \
                7fb61b6a021af96..1552fbed964abfe 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/EHFrameSupport.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/EHFrameSupport.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
 #include "llvm/ExecutionEngine/JITSymbol.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/TargetParser/Triple.h"
 
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/ELF.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/ELF.h index \
                038591f9add0557..89c83d3eea261fb 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/ELF.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/ELF.h
@@ -14,6 +14,7 @@
 #define LLVM_EXECUTIONENGINE_JITLINK_ELF_H
 
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace jitlink {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/ELF_aarch32.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/ELF_aarch32.h index \
                25d1c3aac2c26e3..81d2e429b315ff7 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/ELF_aarch32.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/ELF_aarch32.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
 #include "llvm/ExecutionEngine/JITLink/aarch32.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace jitlink {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/ELF_aarch64.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/ELF_aarch64.h index \
                50eb598139ea0b9..d6496247f132794 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/ELF_aarch64.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/ELF_aarch64.h
@@ -16,6 +16,7 @@
 #define LLVM_EXECUTIONENGINE_JITLINK_ELF_AARCH64_H
 
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace jitlink {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/ELF_i386.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/ELF_i386.h index \
                44ebd9699461137..3bdf64a4b1c66f6 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/ELF_i386.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/ELF_i386.h
@@ -16,6 +16,7 @@
 #define LLVM_EXECUTIONENGINE_JITLINK_ELF_I386_H
 
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace jitlink {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/ELF_loongarch.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/ELF_loongarch.h index \
                4d7655c4b988b74..82ea5f2cdd10f27 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/ELF_loongarch.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/ELF_loongarch.h
@@ -16,6 +16,7 @@
 #define LLVM_EXECUTIONENGINE_JITLINK_ELF_LOONGARCH_H
 
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace jitlink {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/ELF_ppc64.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/ELF_ppc64.h index \
                8db986a4a9fa156..ab2d1f8a76404d3 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/ELF_ppc64.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/ELF_ppc64.h
@@ -14,6 +14,7 @@
 #define LLVM_EXECUTIONENGINE_JITLINK_ELF_PPC64_H
 
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm::jitlink {
 
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/ELF_riscv.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/ELF_riscv.h index \
                a0e573baca066fa..8dada6381640540 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/ELF_riscv.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/ELF_riscv.h
@@ -16,6 +16,7 @@
 #define LLVM_EXECUTIONENGINE_JITLINK_ELF_RISCV_H
 
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace jitlink {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/ELF_x86_64.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/ELF_x86_64.h index \
                fbe5765438d240d..fa5471427528765 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/ELF_x86_64.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/ELF_x86_64.h
@@ -14,6 +14,7 @@
 #define LLVM_EXECUTIONENGINE_JITLINK_ELF_X86_64_H
 
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace jitlink {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h index \
                568c9cf87f80e46..cb50e8c586a7be6 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
@@ -24,6 +24,7 @@
 #include "llvm/Support/Allocator.h"
 #include "llvm/Support/BinaryStreamReader.h"
 #include "llvm/Support/BinaryStreamWriter.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/FormatVariadic.h"
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/JITLinkDylib.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/JITLinkDylib.h index \
                6bb1b5a285b1623..3ee4300d9d57aa0 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/JITLinkDylib.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/JITLinkDylib.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_EXECUTIONENGINE_JITLINK_JITLINKDYLIB_H
 #define LLVM_EXECUTIONENGINE_JITLINK_JITLINKDYLIB_H
 
+#include "llvm/Support/Compiler.h"
 #include <string>
 
 namespace llvm {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h index \
                09e0d71cf0bd29c..b13e4ea96bb717a 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h
@@ -20,6 +20,7 @@
 #include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
 #include "llvm/ExecutionEngine/Orc/Shared/MemoryFlags.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MSVCErrorWorkarounds.h"
 #include "llvm/Support/Memory.h"
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/MachO.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/MachO.h index \
                b8432c4d26c68c0..68239bf9b546674 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/MachO.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/MachO.h
@@ -14,6 +14,7 @@
 #define LLVM_EXECUTIONENGINE_JITLINK_MACHO_H
 
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace jitlink {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/MachO_arm64.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/MachO_arm64.h index \
                31721bf999ec18b..a8263e29bc076c6 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/MachO_arm64.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/MachO_arm64.h
@@ -14,6 +14,7 @@
 #define LLVM_EXECUTIONENGINE_JITLINK_MACHO_ARM64_H
 
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace jitlink {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/MachO_x86_64.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/MachO_x86_64.h index \
                6aee8c354f91e63..693adf5a074ed22 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/MachO_x86_64.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/MachO_x86_64.h
@@ -14,6 +14,7 @@
 #define LLVM_EXECUTIONENGINE_JITLINK_MACHO_X86_64_H
 
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace jitlink {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/TableManager.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/TableManager.h index \
                7ab8ae3e53cec29..150ff1411986cc7 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/TableManager.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/TableManager.h
@@ -14,6 +14,7 @@
 #define LLVM_EXECUTIONENGINE_JITLINK_TABLEMANAGER_H
 
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/aarch32.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/aarch32.h index \
                c05c7ab2ad83185..6368a04665235db 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/aarch32.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/aarch32.h
@@ -17,6 +17,7 @@
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
 #include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
 #include "llvm/Support/ARMBuildAttributes.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/aarch64.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/aarch64.h index \
                50bebf335de1a38..c578bd836ed6df2 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/aarch64.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/aarch64.h
@@ -16,6 +16,7 @@
 #include "TableManager.h"
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
 #include "llvm/ExecutionEngine/Orc/Shared/MemoryFlags.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace jitlink {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/i386.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/i386.h index \
                adfdabf44f0198d..3f244d62827ab5c 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/i386.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/i386.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
 #include "llvm/ExecutionEngine/JITLink/TableManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm::jitlink::i386 {
 /// Represets i386 fixups
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/loongarch.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/loongarch.h index \
                bec657723a38cf9..9919fbd8ae87193 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/loongarch.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/loongarch.h
@@ -16,6 +16,7 @@
 #include "TableManager.h"
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
 #include "llvm/ExecutionEngine/Orc/Shared/MemoryFlags.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace jitlink {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/ppc64.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/ppc64.h index \
                d4b7256e563a9e4..c158db261b7abf7 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/ppc64.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/ppc64.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
 #include "llvm/ExecutionEngine/JITLink/TableManager.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 
 namespace llvm::jitlink::ppc64 {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/riscv.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/riscv.h index \
                c884cc28428b5c5..53802112dc1e5a2 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/riscv.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/riscv.h
@@ -14,6 +14,7 @@
 #define LLVM_EXECUTIONENGINE_JITLINK_RISCV_H
 
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace jitlink {
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/x86_64.h \
b/llvm/include/llvm/ExecutionEngine/JITLink/x86_64.h index \
                519aa192c641702..1d1b63f2a3df83e 100644
--- a/llvm/include/llvm/ExecutionEngine/JITLink/x86_64.h
+++ b/llvm/include/llvm/ExecutionEngine/JITLink/x86_64.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ExecutionEngine/JITLink/JITLink.h"
 #include "llvm/ExecutionEngine/JITLink/TableManager.h"
+#include "llvm/Support/Compiler.h"
 
 #include <limits>
 
diff --git a/llvm/include/llvm/ExecutionEngine/JITSymbol.h \
b/llvm/include/llvm/ExecutionEngine/JITSymbol.h index \
                440e10cc881f03a..e096fec62d1d9bf 100644
--- a/llvm/include/llvm/ExecutionEngine/JITSymbol.h
+++ b/llvm/include/llvm/ExecutionEngine/JITSymbol.h
@@ -25,6 +25,7 @@
 #include "llvm/ADT/BitmaskEnum.h"
 #include "llvm/ADT/FunctionExtras.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/ExecutionEngine/MCJIT.h \
b/llvm/include/llvm/ExecutionEngine/MCJIT.h index adce98f380c54f8..a94fa40cad80b04 \
                100644
--- a/llvm/include/llvm/ExecutionEngine/MCJIT.h
+++ b/llvm/include/llvm/ExecutionEngine/MCJIT.h
@@ -15,6 +15,7 @@
 #define LLVM_EXECUTIONENGINE_MCJIT_H
 
 #include "llvm/ExecutionEngine/ExecutionEngine.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdlib>
 
 extern "C" void LLVMLinkInMCJIT();
diff --git a/llvm/include/llvm/ExecutionEngine/ObjectCache.h \
b/llvm/include/llvm/ExecutionEngine/ObjectCache.h index \
                1c72ca39f7c1631..64512747cfad00b 100644
--- a/llvm/include/llvm/ExecutionEngine/ObjectCache.h
+++ b/llvm/include/llvm/ExecutionEngine/ObjectCache.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_EXECUTIONENGINE_OBJECTCACHE_H
 #define LLVM_EXECUTIONENGINE_OBJECTCACHE_H
 
+#include "llvm/Support/Compiler.h"
 #include <memory>
 
 namespace llvm {
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/COFFPlatform.h \
b/llvm/include/llvm/ExecutionEngine/Orc/COFFPlatform.h index \
                4ef208dbbca22c0..b01520d26b04a6b 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/COFFPlatform.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/COFFPlatform.h
@@ -20,6 +20,7 @@
 #include "llvm/ExecutionEngine/Orc/ExecutorProcessControl.h"
 #include "llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h"
 #include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
+#include "llvm/Support/Compiler.h"
 
 #include <future>
 #include <memory>
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/COFFVCRuntimeSupport.h \
b/llvm/include/llvm/ExecutionEngine/Orc/COFFVCRuntimeSupport.h index \
                e3904717f1b267b..b317a971a268d4f 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/COFFVCRuntimeSupport.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/COFFVCRuntimeSupport.h
@@ -18,6 +18,7 @@
 #include "llvm/ExecutionEngine/Orc/ExecutorProcessControl.h"
 #include "llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h"
 #include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
+#include "llvm/Support/Compiler.h"
 
 #include <future>
 #include <memory>
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h \
b/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h index \
                23a64b5836db85f..6c8a08659ea3e59 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
@@ -37,6 +37,7 @@
 #include "llvm/IR/Module.h"
 #include "llvm/IR/Type.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 #include "llvm/Transforms/Utils/ValueMapper.h"
 #include <algorithm>
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h \
b/llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h index \
                ee53f2383cb07d6..8c9b35349d338bd 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/CompileUtils.h
@@ -16,6 +16,7 @@
 #include "llvm/ExecutionEngine/Orc/IRCompileLayer.h"
 #include "llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h"
 #include "llvm/ExecutionEngine/Orc/Layer.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 
 namespace llvm {
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/Core.h \
b/llvm/include/llvm/ExecutionEngine/Orc/Core.h index c51a15c8ed3759c..612092b55ef83a7 \
                100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/Core.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/Core.h
@@ -24,6 +24,7 @@
 #include "llvm/ExecutionEngine/Orc/Shared/ExecutorSymbolDef.h"
 #include "llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h"
 #include "llvm/ExecutionEngine/Orc/TaskDispatch.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/ExtensibleRTTI.h"
 
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h \
b/llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h index \
                70f5230c5fceb68..75badc0b7f29b38 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h
@@ -17,6 +17,7 @@
 #include "llvm/ExecutionEngine/Orc/Core.h"
 #include "llvm/ExecutionEngine/Orc/EPCDebugObjectRegistrar.h"
 #include "llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/Memory.h"
 #include "llvm/Support/MemoryBufferRef.h"
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/DebugUtils.h \
b/llvm/include/llvm/ExecutionEngine/Orc/DebugUtils.h index \
                c4ef06f1fbc65be..48c1b8d8bcd58c2 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/DebugUtils.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/DebugUtils.h
@@ -16,6 +16,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ExecutionEngine/Orc/Core.h"
 #include "llvm/ExecutionEngine/Orc/SymbolStringPool.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/raw_ostream.h"
 #include <memory>
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/DebuggerSupportPlugin.h \
b/llvm/include/llvm/ExecutionEngine/Orc/DebuggerSupportPlugin.h index \
                e21d5823288ee49..2a222b57af13605 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/DebuggerSupportPlugin.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/DebuggerSupportPlugin.h
@@ -16,6 +16,7 @@
 #include "llvm/ExecutionEngine/Orc/Core.h"
 #include "llvm/ExecutionEngine/Orc/EPCDebugObjectRegistrar.h"
 #include "llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace orc {
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/ELFNixPlatform.h \
b/llvm/include/llvm/ExecutionEngine/Orc/ELFNixPlatform.h index \
                84977711d63fd7d..94793eeefb8a821 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/ELFNixPlatform.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/ELFNixPlatform.h
@@ -18,6 +18,7 @@
 #include "llvm/ExecutionEngine/Orc/ExecutorProcessControl.h"
 #include "llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h"
 #include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
+#include "llvm/Support/Compiler.h"
 
 #include <future>
 #include <thread>
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/EPCDebugObjectRegistrar.h \
b/llvm/include/llvm/ExecutionEngine/Orc/EPCDebugObjectRegistrar.h index \
                201d52aa958158a..7de36f91bc13c37 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/EPCDebugObjectRegistrar.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/EPCDebugObjectRegistrar.h
@@ -16,6 +16,7 @@
 #include "llvm/ExecutionEngine/JITSymbol.h"
 #include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
 #include "llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/Memory.h"
 
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/EPCDynamicLibrarySearchGenerator.h \
b/llvm/include/llvm/ExecutionEngine/Orc/EPCDynamicLibrarySearchGenerator.h index \
                63797edec89e611..6da14b2cdb7d160 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/EPCDynamicLibrarySearchGenerator.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/EPCDynamicLibrarySearchGenerator.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/FunctionExtras.h"
 #include "llvm/ExecutionEngine/Orc/Core.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace orc {
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/EPCEHFrameRegistrar.h \
b/llvm/include/llvm/ExecutionEngine/Orc/EPCEHFrameRegistrar.h index \
                9772c84b682a53b..3277986f4e3d8f0 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/EPCEHFrameRegistrar.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/EPCEHFrameRegistrar.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ExecutionEngine/JITLink/EHFrameSupport.h"
 #include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace orc {
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/EPCGenericDylibManager.h \
b/llvm/include/llvm/ExecutionEngine/Orc/EPCGenericDylibManager.h index \
                02e580c86f548e4..4e018393849f80a 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/EPCGenericDylibManager.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/EPCGenericDylibManager.h
@@ -20,6 +20,7 @@
 
 #include "llvm/ExecutionEngine/Orc/ExecutorProcessControl.h"
 #include "llvm/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace orc {
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManager.h \
b/llvm/include/llvm/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManager.h index \
                18656d03e441637..977b2f10562af9e 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManager.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManager.h
@@ -20,6 +20,7 @@
 
 #include "llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h"
 #include "llvm/ExecutionEngine/Orc/Core.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace orc {
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/EPCGenericMemoryAccess.h \
b/llvm/include/llvm/ExecutionEngine/Orc/EPCGenericMemoryAccess.h index \
                8c1d457d06ab36c..3449b5c37f14d18 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/EPCGenericMemoryAccess.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/EPCGenericMemoryAccess.h
@@ -19,6 +19,7 @@
 #define LLVM_EXECUTIONENGINE_ORC_EPCGENERICMEMORYACCESS_H
 
 #include "llvm/ExecutionEngine/Orc/Core.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace orc {
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/EPCGenericRTDyldMemoryManager.h \
b/llvm/include/llvm/ExecutionEngine/Orc/EPCGenericRTDyldMemoryManager.h index \
                2ea3c1b66cddcb1..0ba4c9bddc54e11 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/EPCGenericRTDyldMemoryManager.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/EPCGenericRTDyldMemoryManager.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ExecutionEngine/Orc/ExecutorProcessControl.h"
 #include "llvm/ExecutionEngine/RuntimeDyld.h"
+#include "llvm/Support/Compiler.h"
 
 #define DEBUG_TYPE "orc"
 
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/EPCIndirectionUtils.h \
b/llvm/include/llvm/ExecutionEngine/Orc/EPCIndirectionUtils.h index \
                2834331b21f2087..26a97751724e8c4 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/EPCIndirectionUtils.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/EPCIndirectionUtils.h
@@ -17,6 +17,7 @@
 #include "llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h"
 #include "llvm/ExecutionEngine/Orc/IndirectionUtils.h"
 #include "llvm/ExecutionEngine/Orc/LazyReexports.h"
+#include "llvm/Support/Compiler.h"
 
 #include <mutex>
 
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h \
b/llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h index \
                2f13560061c4fc0..949b5a066cbe3ce 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
@@ -22,6 +22,7 @@
 #include "llvm/ExecutionEngine/Orc/Shared/OrcError.h"
 #include "llvm/ExecutionEngine/RuntimeDyld.h"
 #include "llvm/Object/Archive.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DynamicLibrary.h"
 #include <algorithm>
 #include <cstdint>
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/ExecutorProcessControl.h \
b/llvm/include/llvm/ExecutionEngine/Orc/ExecutorProcessControl.h index \
                a16a3b9f92a1bc0..74fd51d0bce2778 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/ExecutorProcessControl.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/ExecutorProcessControl.h
@@ -20,6 +20,7 @@
 #include "llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h"
 #include "llvm/ExecutionEngine/Orc/SymbolStringPool.h"
 #include "llvm/ExecutionEngine/Orc/TaskDispatch.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DynamicLibrary.h"
 #include "llvm/Support/MSVCErrorWorkarounds.h"
 #include "llvm/TargetParser/Triple.h"
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h \
b/llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h index \
                f493d63a7c8a991..b39d26b21ec6e4e 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
@@ -16,6 +16,7 @@
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ExecutionEngine/JITSymbol.h"
 #include "llvm/ExecutionEngine/Orc/Layer.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include <functional>
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h \
b/llvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h index \
                4f1cde32ff1862b..bd3f598a1a3cc5f 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
@@ -16,6 +16,7 @@
 #include "llvm/ADT/FunctionExtras.h"
 #include "llvm/ExecutionEngine/JITSymbol.h"
 #include "llvm/ExecutionEngine/Orc/Layer.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 
 namespace llvm {
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h \
b/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h index \
                3b9ba55ef9c4c23..e632885bfe554fe 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h
@@ -18,6 +18,7 @@
 #include "llvm/ExecutionEngine/JITSymbol.h"
 #include "llvm/ExecutionEngine/Orc/Core.h"
 #include "llvm/ExecutionEngine/Orc/OrcABISupport.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/Memory.h"
 #include "llvm/Support/Process.h"
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h \
b/llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h index \
                0e72194aec9b1df..3b0b10c2f7b2ee6 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h
@@ -14,6 +14,7 @@
 #define LLVM_EXECUTIONENGINE_ORC_JITTARGETMACHINEBUILDER_H
 
 #include "llvm/Support/CodeGen.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Target/TargetMachine.h"
 #include "llvm/Target/TargetOptions.h"
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h \
b/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h index \
                d1affd9d2eb3cbc..5a02ca17bc130fb 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h
@@ -20,6 +20,7 @@
 #include "llvm/ExecutionEngine/Orc/IRTransformLayer.h"
 #include "llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h"
 #include "llvm/ExecutionEngine/Orc/ThreadSafeModule.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/ThreadPool.h"
 #include <variant>
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/Layer.h \
b/llvm/include/llvm/ExecutionEngine/Orc/Layer.h index \
                cfeedc2a0bdaab7..8e9c43492852141 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/Layer.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/Layer.h
@@ -18,6 +18,7 @@
 #include "llvm/ExecutionEngine/Orc/ThreadSafeModule.h"
 #include "llvm/IR/Module.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ExtensibleRTTI.h"
 #include "llvm/Support/MemoryBuffer.h"
 
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h \
b/llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h index \
                4916460a9b946cd..4abe704ebb14de0 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h
@@ -20,6 +20,7 @@
 #include "llvm/ExecutionEngine/Orc/Core.h"
 #include "llvm/ExecutionEngine/Orc/IndirectionUtils.h"
 #include "llvm/ExecutionEngine/Orc/Speculation.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/LookupAndRecordAddrs.h \
b/llvm/include/llvm/ExecutionEngine/Orc/LookupAndRecordAddrs.h index \
                a598405ee4f6cea..93425d83b7c698a 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/LookupAndRecordAddrs.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/LookupAndRecordAddrs.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/FunctionExtras.h"
 #include "llvm/ExecutionEngine/Orc/Core.h"
 #include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
+#include "llvm/Support/Compiler.h"
 
 #include <vector>
 
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h \
b/llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h index \
                15dae6f920d5793..c5645169aa9dd91 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
@@ -18,6 +18,7 @@
 #include "llvm/ExecutionEngine/Orc/ExecutorProcessControl.h"
 #include "llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h"
 #include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
+#include "llvm/Support/Compiler.h"
 
 #include <future>
 #include <thread>
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/Mangling.h \
b/llvm/include/llvm/ExecutionEngine/Orc/Mangling.h index \
                77429f4b11eefe4..d02875af38cb1d0 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/Mangling.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/Mangling.h
@@ -16,6 +16,7 @@
 #include "llvm/ExecutionEngine/Orc/Core.h"
 #include "llvm/ExecutionEngine/Orc/ThreadSafeModule.h"
 #include "llvm/IR/Module.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MemoryBuffer.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/MapperJITLinkMemoryManager.h \
b/llvm/include/llvm/ExecutionEngine/Orc/MapperJITLinkMemoryManager.h index \
                b1897d557b1225d..1ffd23d58540d5d 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/MapperJITLinkMemoryManager.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/MapperJITLinkMemoryManager.h
@@ -16,6 +16,7 @@
 #include "llvm/ADT/IntervalMap.h"
 #include "llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h"
 #include "llvm/ExecutionEngine/Orc/MemoryMapper.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace orc {
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/MemoryMapper.h \
b/llvm/include/llvm/ExecutionEngine/Orc/MemoryMapper.h index \
                9f9ff06b2c2f687..5ed7d21bfae9ac4 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/MemoryMapper.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/MemoryMapper.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ExecutionEngine/Orc/Core.h"
 #include "llvm/ExecutionEngine/Orc/Shared/MemoryFlags.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Process.h"
 
 #include <mutex>
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/ObjectFileInterface.h \
b/llvm/include/llvm/ExecutionEngine/Orc/ObjectFileInterface.h index \
                1bf09069163e703..93a285bf76dfa5d 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/ObjectFileInterface.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/ObjectFileInterface.h
@@ -15,6 +15,7 @@
 #define LLVM_EXECUTIONENGINE_ORC_OBJECTFILEINTERFACE_H
 
 #include "llvm/ExecutionEngine/Orc/Core.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MemoryBuffer.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h \
b/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h index \
                c1f62408bb114ff..b2399f0e12dd4c9 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
@@ -21,6 +21,7 @@
 #include "llvm/ExecutionEngine/JITSymbol.h"
 #include "llvm/ExecutionEngine/Orc/Core.h"
 #include "llvm/ExecutionEngine/Orc/Layer.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <algorithm>
 #include <cassert>
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h \
b/llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h index \
                9fc5fc0b902b6b1..36a6dbb6333d4bd 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ExecutionEngine/JITSymbol.h"
 #include "llvm/ExecutionEngine/Orc/Layer.h"
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <memory>
 
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h \
b/llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h index \
                5d25a3e8546484e..6ad4a0e2dd4b501 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h
@@ -18,6 +18,7 @@
 #define LLVM_EXECUTIONENGINE_ORC_ORCABISUPPORT_H
 
 #include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/MathExtras.h"
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h \
b/llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h index \
                5d8c4e654c0d9d8..7d394321c8b2a2a 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
@@ -22,6 +22,7 @@
 #include "llvm/ExecutionEngine/Orc/Layer.h"
 #include "llvm/ExecutionEngine/RuntimeDyld.h"
 #include "llvm/Object/ObjectFile.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <algorithm>
 #include <cassert>
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/Shared/AllocationActions.h \
b/llvm/include/llvm/ExecutionEngine/Orc/Shared/AllocationActions.h index \
                6469b87c816f43d..7102c603d4d66f3 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/Shared/AllocationActions.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/Shared/AllocationActions.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
 #include "llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Memory.h"
 
 #include <vector>
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h \
b/llvm/include/llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h index \
                b7b98d55cc65b60..f439b449cb4d46b 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h
@@ -16,6 +16,7 @@
 #include "llvm/ADT/DenseMapInfo.h"
 #include "llvm/ADT/identity.h"
 #include "llvm/ExecutionEngine/Orc/Shared/SimplePackedSerialization.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/FormatVariadic.h"
 #include "llvm/Support/raw_ostream.h"
 
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/Shared/ExecutorSymbolDef.h \
b/llvm/include/llvm/ExecutionEngine/Orc/Shared/ExecutorSymbolDef.h index \
                5c58a7255ebd8b0..d860f6a293ab74f 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/Shared/ExecutorSymbolDef.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/Shared/ExecutorSymbolDef.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ExecutionEngine/JITSymbol.h"
 #include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace orc {
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/Shared/MemoryFlags.h \
b/llvm/include/llvm/ExecutionEngine/Orc/Shared/MemoryFlags.h index \
                c20366cfbb38883..7e75bc7bba6219c 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/Shared/MemoryFlags.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/Shared/MemoryFlags.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/BitmaskEnum.h"
 #include "llvm/ADT/DenseMapInfo.h"
 #include "llvm/ADT/STLExtras.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Memory.h"
 #include "llvm/Support/raw_ostream.h"
 
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/Shared/ObjectFormats.h \
b/llvm/include/llvm/ExecutionEngine/Orc/Shared/ObjectFormats.h index \
                b7bc54b465a0043..b4ca812c51812c9 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/Shared/ObjectFormats.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/Shared/ObjectFormats.h
@@ -14,6 +14,7 @@
 #define LLVM_EXECUTIONENGINE_ORC_SHARED_OBJECTFORMATS_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace orc {
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcError.h \
b/llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcError.h index \
                8dffea70e3355ae..b80ead3ea034700 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcError.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcError.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_EXECUTIONENGINE_ORC_SHARED_ORCERROR_H
 #define LLVM_EXECUTIONENGINE_ORC_SHARED_ORCERROR_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/raw_ostream.h"
 #include <string>
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/Shared/SimplePackedSerialization.h \
b/llvm/include/llvm/ExecutionEngine/Orc/Shared/SimplePackedSerialization.h index \
                8a55d5fb1795520..8d1e061471e2235 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/Shared/SimplePackedSerialization.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/Shared/SimplePackedSerialization.h
@@ -36,6 +36,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/SwapByteOrder.h"
 
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.h \
b/llvm/include/llvm/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.h index \
                ee3919c733409c5..bded4ea10ae3039 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
 #include "llvm/ExecutionEngine/Orc/Shared/SimplePackedSerialization.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 #include <atomic>
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/Shared/TargetProcessControlTypes.h \
b/llvm/include/llvm/ExecutionEngine/Orc/Shared/TargetProcessControlTypes.h index \
                09c73db44a947b3..98d7eacb6c81961 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/Shared/TargetProcessControlTypes.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/Shared/TargetProcessControlTypes.h
@@ -22,6 +22,7 @@
 #include "llvm/ExecutionEngine/Orc/Shared/MemoryFlags.h"
 #include "llvm/ExecutionEngine/Orc/Shared/SimplePackedSerialization.h"
 #include "llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Memory.h"
 
 #include <vector>
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h \
b/llvm/include/llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h index \
                bdb5ac143c34a92..39b2a54d06a536d 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
 #include "llvm/ExecutionEngine/Orc/Shared/SimplePackedSerialization.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 #include <type_traits>
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/SimpleRemoteEPC.h \
b/llvm/include/llvm/ExecutionEngine/Orc/SimpleRemoteEPC.h index \
                25b79be48810c60..a1ddf4ccb0ae883 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/SimpleRemoteEPC.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/SimpleRemoteEPC.h
@@ -20,6 +20,7 @@
 #include "llvm/ExecutionEngine/Orc/EPCGenericMemoryAccess.h"
 #include "llvm/ExecutionEngine/Orc/ExecutorProcessControl.h"
 #include "llvm/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MSVCErrorWorkarounds.h"
 
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/SpeculateAnalyses.h \
b/llvm/include/llvm/ExecutionEngine/Orc/SpeculateAnalyses.h index \
                8c94f27ed683cc1..fad9dc5c0b9d377 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/SpeculateAnalyses.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/SpeculateAnalyses.h
@@ -16,6 +16,7 @@
 #include "llvm/Analysis/BranchProbabilityInfo.h"
 #include "llvm/ExecutionEngine/Orc/Core.h"
 #include "llvm/ExecutionEngine/Orc/Speculation.h"
+#include "llvm/Support/Compiler.h"
 
 #include <vector>
 
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/Speculation.h \
b/llvm/include/llvm/ExecutionEngine/Orc/Speculation.h index \
                88c90f54acbd5ef..54ba127bb8b3695 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/Speculation.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/Speculation.h
@@ -17,6 +17,7 @@
 #include "llvm/ExecutionEngine/Orc/Core.h"
 #include "llvm/ExecutionEngine/Orc/DebugUtils.h"
 #include "llvm/ExecutionEngine/Orc/IRCompileLayer.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include <mutex>
 #include <type_traits>
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h \
b/llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h index \
                497e29da98bd59d..7395f47a7e3c884 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/StringMap.h"
+#include "llvm/Support/Compiler.h"
 #include <atomic>
 #include <mutex>
 
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/ExecutorBootstrapService.h \
b/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/ExecutorBootstrapService.h \
                index 32c127634b25ade..1dd604566661269 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/ExecutorBootstrapService.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/ExecutorBootstrapService.h
@@ -17,6 +17,7 @@
 
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace orc {
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.h \
b/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.h
 index 549a6c096510d85..e63d68b43d29868 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.h
                
+++ b/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.h
 @@ -12,6 +12,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ExecutionEngine/Orc/Shared/TargetProcessControlTypes.h"
 #include "llvm/ExecutionEngine/Orc/TargetProcess/ExecutorBootstrapService.h"
+#include "llvm/Support/Compiler.h"
 
 #include <atomic>
 #include <mutex>
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/JITLoaderGDB.h \
b/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/JITLoaderGDB.h index \
                99175d796974753..e6cdee0e535d7e1 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/JITLoaderGDB.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/JITLoaderGDB.h
@@ -14,6 +14,7 @@
 #define LLVM_EXECUTIONENGINE_ORC_TARGETPROCESS_JITLOADERGDB_H
 
 #include "llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 extern "C" llvm::orc::shared::CWrapperFunctionResult
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.h \
b/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.h index \
                04790afa6e31633..2421c8e54f4ad75 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.h
@@ -17,6 +17,7 @@
 #define LLVM_EXECUTIONENGINE_ORC_TARGETPROCESS_REGISTEREHFRAMES_H
 
 #include "llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleExecutorDylibManager.h \
b/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleExecutorDylibManager.h \
                index fd4504cfb7fb064..1e2107c9bd69f2a 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleExecutorDylibManager.h
                
+++ b/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleExecutorDylibManager.h
 @@ -22,6 +22,7 @@
 #include "llvm/ExecutionEngine/Orc/Shared/TargetProcessControlTypes.h"
 #include "llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h"
 #include "llvm/ExecutionEngine/Orc/TargetProcess/ExecutorBootstrapService.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DynamicLibrary.h"
 #include "llvm/Support/Error.h"
 
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleExecutorMemoryManager.h \
b/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleExecutorMemoryManager.h \
                index 97b333c68b63d37..2d99a8ac76c36b1 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleExecutorMemoryManager.h
                
+++ b/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleExecutorMemoryManager.h
 @@ -20,6 +20,7 @@
 #include "llvm/ExecutionEngine/Orc/Shared/TargetProcessControlTypes.h"
 #include "llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h"
 #include "llvm/ExecutionEngine/Orc/TargetProcess/ExecutorBootstrapService.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 #include <mutex>
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h \
b/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h index \
                07f01ecb68a48e6..d19c26f206789b6 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/SimpleRemoteEPCServer.h
@@ -21,6 +21,7 @@
 #include "llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h"
 #include "llvm/ExecutionEngine/Orc/TargetProcess/ExecutorBootstrapService.h"
 #include "llvm/ExecutionEngine/Orc/TargetProcess/SimpleExecutorDylibManager.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DynamicLibrary.h"
 #include "llvm/Support/Error.h"
 
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/TargetExecutionUtils.h \
b/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/TargetExecutionUtils.h index \
                68acfa750fa0efc..f8449aae2864625 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/TargetExecutionUtils.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/TargetProcess/TargetExecutionUtils.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <string>
 
 namespace llvm {
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/TaskDispatch.h \
b/llvm/include/llvm/ExecutionEngine/Orc/TaskDispatch.h index \
                8c287f9fec0e898..bd5d98d9f4f2e8b 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/TaskDispatch.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/TaskDispatch.h
@@ -14,6 +14,7 @@
 #define LLVM_EXECUTIONENGINE_ORC_TASKDISPATCH_H
 
 #include "llvm/Config/llvm-config.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/ExtensibleRTTI.h"
 #include "llvm/Support/raw_ostream.h"
diff --git a/llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h \
b/llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h index \
                c7c87ecdfa09a98..d71fb82d85d2b96 100644
--- a/llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h
+++ b/llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h
@@ -17,6 +17,7 @@
 #include "llvm/ExecutionEngine/JITSymbol.h"
 #include "llvm/ExecutionEngine/RuntimeDyld.h"
 #include "llvm/Support/CBindingWrapping.h"
+#include "llvm/Support/Compiler.h"
 #include <cstddef>
 #include <cstdint>
 #include <string>
diff --git a/llvm/include/llvm/ExecutionEngine/RuntimeDyld.h \
b/llvm/include/llvm/ExecutionEngine/RuntimeDyld.h index \
                468296ac1523344..1248205f8f54a7d 100644
--- a/llvm/include/llvm/ExecutionEngine/RuntimeDyld.h
+++ b/llvm/include/llvm/ExecutionEngine/RuntimeDyld.h
@@ -19,6 +19,7 @@
 #include "llvm/DebugInfo/DIContext.h"
 #include "llvm/ExecutionEngine/JITSymbol.h"
 #include "llvm/Object/ObjectFile.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <algorithm>
 #include <cassert>
diff --git a/llvm/include/llvm/ExecutionEngine/RuntimeDyldChecker.h \
b/llvm/include/llvm/ExecutionEngine/RuntimeDyldChecker.h index \
                63cf5290b0c35e7..f4cc4fb6deca85a 100644
--- a/llvm/include/llvm/ExecutionEngine/RuntimeDyldChecker.h
+++ b/llvm/include/llvm/ExecutionEngine/RuntimeDyldChecker.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ExecutionEngine/JITSymbol.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include <optional>
 
diff --git a/llvm/include/llvm/ExecutionEngine/SectionMemoryManager.h \
b/llvm/include/llvm/ExecutionEngine/SectionMemoryManager.h index \
                fa1b2355528dd0b..e1e0f8f4cb1f08b 100644
--- a/llvm/include/llvm/ExecutionEngine/SectionMemoryManager.h
+++ b/llvm/include/llvm/ExecutionEngine/SectionMemoryManager.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ExecutionEngine/RTDyldMemoryManager.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Memory.h"
 #include <cstdint>
 #include <string>
diff --git a/llvm/include/llvm/FileCheck/FileCheck.h \
b/llvm/include/llvm/FileCheck/FileCheck.h index d6d8dc531e1001c..018f20dec22e6bf \
                100644
--- a/llvm/include/llvm/FileCheck/FileCheck.h
+++ b/llvm/include/llvm/FileCheck/FileCheck.h
@@ -14,6 +14,7 @@
 #define LLVM_FILECHECK_FILECHECK_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Regex.h"
 #include "llvm/Support/SMLoc.h"
 #include <bitset>
diff --git a/llvm/include/llvm/Frontend/HLSL/HLSLResource.h \
b/llvm/include/llvm/Frontend/HLSL/HLSLResource.h index \
                ba08ee519351f73..121a969de429a87 100644
--- a/llvm/include/llvm/Frontend/HLSL/HLSLResource.h
+++ b/llvm/include/llvm/Frontend/HLSL/HLSLResource.h
@@ -14,6 +14,7 @@
 #define LLVM_FRONTEND_HLSL_HLSLRESOURCE_H
 
 #include "llvm/IR/Metadata.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class GlobalVariable;
diff --git a/llvm/include/llvm/Frontend/OpenMP/OMPContext.h \
b/llvm/include/llvm/Frontend/OpenMP/OMPContext.h index \
                b13b74ceab86516..47f621a84ed4381 100644
--- a/llvm/include/llvm/Frontend/OpenMP/OMPContext.h
+++ b/llvm/include/llvm/Frontend/OpenMP/OMPContext.h
@@ -20,6 +20,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/DenseMapInfo.h"
 #include "llvm/Frontend/OpenMP/OMPConstants.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Triple;
diff --git a/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h \
b/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h index \
                3cf9ac84bf0bfea..37fc8be39f08a63 100644
--- a/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
+++ b/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
@@ -19,6 +19,7 @@
 #include "llvm/IR/DebugLoc.h"
 #include "llvm/IR/IRBuilder.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include <forward_list>
 #include <map>
 #include <optional>
diff --git a/llvm/include/llvm/FuzzMutate/FuzzerCLI.h \
b/llvm/include/llvm/FuzzMutate/FuzzerCLI.h index d6518107b24b6e3..8a0eaba9eb3b459 \
                100644
--- a/llvm/include/llvm/FuzzMutate/FuzzerCLI.h
+++ b/llvm/include/llvm/FuzzMutate/FuzzerCLI.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_FUZZMUTATE_FUZZERCLI_H
 #define LLVM_FUZZMUTATE_FUZZERCLI_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 #include <stddef.h>
 
diff --git a/llvm/include/llvm/FuzzMutate/IRMutator.h \
b/llvm/include/llvm/FuzzMutate/IRMutator.h index dd4534bd9d1a8d6..1c954601c3b64d2 \
                100644
--- a/llvm/include/llvm/FuzzMutate/IRMutator.h
+++ b/llvm/include/llvm/FuzzMutate/IRMutator.h
@@ -19,6 +19,7 @@
 #define LLVM_FUZZMUTATE_IRMUTATOR_H
 
 #include "llvm/FuzzMutate/OpDescriptor.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <optional>
 
diff --git a/llvm/include/llvm/FuzzMutate/OpDescriptor.h \
b/llvm/include/llvm/FuzzMutate/OpDescriptor.h index f3b185dfedd8d98..1f9dce121df8a3b \
                100644
--- a/llvm/include/llvm/FuzzMutate/OpDescriptor.h
+++ b/llvm/include/llvm/FuzzMutate/OpDescriptor.h
@@ -21,6 +21,7 @@
 #include "llvm/IR/InstrTypes.h"
 #include "llvm/IR/Type.h"
 #include "llvm/IR/Value.h"
+#include "llvm/Support/Compiler.h"
 #include <functional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/FuzzMutate/Operations.h \
b/llvm/include/llvm/FuzzMutate/Operations.h index 84155730a93cd85..c92a84bd867d072 \
                100644
--- a/llvm/include/llvm/FuzzMutate/Operations.h
+++ b/llvm/include/llvm/FuzzMutate/Operations.h
@@ -17,6 +17,7 @@
 #include "llvm/FuzzMutate/OpDescriptor.h"
 #include "llvm/IR/InstrTypes.h"
 #include "llvm/IR/Instruction.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/FuzzMutate/Random.h \
b/llvm/include/llvm/FuzzMutate/Random.h index 6eba9ca9e8d3c8f..3b14a1afe0b26bf 100644
--- a/llvm/include/llvm/FuzzMutate/Random.h
+++ b/llvm/include/llvm/FuzzMutate/Random.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_FUZZMUTATE_RANDOM_H
 #define LLVM_FUZZMUTATE_RANDOM_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 #include <random>
 namespace llvm {
diff --git a/llvm/include/llvm/FuzzMutate/RandomIRBuilder.h \
b/llvm/include/llvm/FuzzMutate/RandomIRBuilder.h index \
                8560f2ca2066e49..a3c5d9a9396d248 100644
--- a/llvm/include/llvm/FuzzMutate/RandomIRBuilder.h
+++ b/llvm/include/llvm/FuzzMutate/RandomIRBuilder.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 #include <random>
 
 namespace llvm {
diff --git a/llvm/include/llvm/IR/AbstractCallSite.h \
b/llvm/include/llvm/IR/AbstractCallSite.h index 50afe016f0d633e..74334af55a437ae \
                100644
--- a/llvm/include/llvm/IR/AbstractCallSite.h
+++ b/llvm/include/llvm/IR/AbstractCallSite.h
@@ -18,6 +18,7 @@
 #include "llvm/IR/Function.h"
 #include "llvm/IR/InstrTypes.h"
 #include "llvm/IR/Value.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 
 namespace llvm {
diff --git a/llvm/include/llvm/IR/Argument.h b/llvm/include/llvm/IR/Argument.h
index f0c0ce75d2b7e18..9f46a7f05f5b62c 100644
--- a/llvm/include/llvm/IR/Argument.h
+++ b/llvm/include/llvm/IR/Argument.h
@@ -16,6 +16,7 @@
 #include "llvm/ADT/Twine.h"
 #include "llvm/IR/Attributes.h"
 #include "llvm/IR/Value.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/AssemblyAnnotationWriter.h \
b/llvm/include/llvm/IR/AssemblyAnnotationWriter.h index \
                3fd3c57a6796395..b7ca692cec58856 100644
--- a/llvm/include/llvm/IR/AssemblyAnnotationWriter.h
+++ b/llvm/include/llvm/IR/AssemblyAnnotationWriter.h
@@ -16,6 +16,8 @@
 #ifndef LLVM_IR_ASSEMBLYANNOTATIONWRITER_H
 #define LLVM_IR_ASSEMBLYANNOTATIONWRITER_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 
 class Function;
diff --git a/llvm/include/llvm/IR/Assumptions.h b/llvm/include/llvm/IR/Assumptions.h
index 2d2ecfbde6e6b37..2b29fae7d1cbe8d 100644
--- a/llvm/include/llvm/IR/Assumptions.h
+++ b/llvm/include/llvm/IR/Assumptions.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/DenseSet.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/StringSet.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/AttributeMask.h \
b/llvm/include/llvm/IR/AttributeMask.h index 857761149ff46b5..b534e15460ae027 100644
--- a/llvm/include/llvm/IR/AttributeMask.h
+++ b/llvm/include/llvm/IR/AttributeMask.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/SmallString.h"
 #include "llvm/IR/Attributes.h"
+#include "llvm/Support/Compiler.h"
 #include <bitset>
 #include <cassert>
 #include <set>
diff --git a/llvm/include/llvm/IR/Attributes.h b/llvm/include/llvm/IR/Attributes.h
index db33b5400471685..0ebee35d6978ed0 100644
--- a/llvm/include/llvm/IR/Attributes.h
+++ b/llvm/include/llvm/IR/Attributes.h
@@ -22,6 +22,7 @@
 #include "llvm/Config/llvm-config.h"
 #include "llvm/Support/Alignment.h"
 #include "llvm/Support/CodeGen.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ModRef.h"
 #include "llvm/Support/PointerLikeTypeTraits.h"
 #include <cassert>
diff --git a/llvm/include/llvm/IR/AutoUpgrade.h b/llvm/include/llvm/IR/AutoUpgrade.h
index 12952f25cbda973..36ff6f025ab3cea 100644
--- a/llvm/include/llvm/IR/AutoUpgrade.h
+++ b/llvm/include/llvm/IR/AutoUpgrade.h
@@ -14,6 +14,7 @@
 #define LLVM_IR_AUTOUPGRADE_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <vector>
 
 namespace llvm {
diff --git a/llvm/include/llvm/IR/BasicBlock.h b/llvm/include/llvm/IR/BasicBlock.h
index 19bf9549a8caec0..d577afb69c44a0e 100644
--- a/llvm/include/llvm/IR/BasicBlock.h
+++ b/llvm/include/llvm/IR/BasicBlock.h
@@ -22,6 +22,7 @@
 #include "llvm/IR/Instruction.h"
 #include "llvm/IR/SymbolTableListTraits.h"
 #include "llvm/IR/Value.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 #include <iterator>
diff --git a/llvm/include/llvm/IR/BuiltinGCs.h b/llvm/include/llvm/IR/BuiltinGCs.h
index 16aff01dbcf3d76..208b6c76c476caa 100644
--- a/llvm/include/llvm/IR/BuiltinGCs.h
+++ b/llvm/include/llvm/IR/BuiltinGCs.h
@@ -14,6 +14,8 @@
 #ifndef LLVM_IR_BUILTINGCS_H
 #define LLVM_IR_BUILTINGCS_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 
 /// FIXME: Collector instances are not useful on their own. These no longer
diff --git a/llvm/include/llvm/IR/CFG.h b/llvm/include/llvm/IR/CFG.h
index 12ca1b1b9aa9794..6c294bbb682febb 100644
--- a/llvm/include/llvm/IR/CFG.h
+++ b/llvm/include/llvm/IR/CFG.h
@@ -25,6 +25,7 @@
 #include "llvm/IR/BasicBlock.h"
 #include "llvm/IR/Function.h"
 #include "llvm/IR/Value.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 #include <iterator>
diff --git a/llvm/include/llvm/IR/Comdat.h b/llvm/include/llvm/IR/Comdat.h
index 1701802e697729a..e461153cd770ad9 100644
--- a/llvm/include/llvm/IR/Comdat.h
+++ b/llvm/include/llvm/IR/Comdat.h
@@ -18,6 +18,7 @@
 #include "llvm-c/Types.h"
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/Support/CBindingWrapping.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/Constant.h b/llvm/include/llvm/IR/Constant.h
index 778764062227cb9..2f9d44e93990829 100644
--- a/llvm/include/llvm/IR/Constant.h
+++ b/llvm/include/llvm/IR/Constant.h
@@ -16,6 +16,7 @@
 #include "llvm/IR/User.h"
 #include "llvm/IR/Value.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/ConstantFold.h \
b/llvm/include/llvm/IR/ConstantFold.h index 77f5f0eb174a2bb..ccd3cb7701df887 100644
--- a/llvm/include/llvm/IR/ConstantFold.h
+++ b/llvm/include/llvm/IR/ConstantFold.h
@@ -22,6 +22,7 @@
 #define LLVM_IR_CONSTANTFOLD_H
 
 #include "llvm/IR/InstrTypes.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/IR/ConstantFolder.h \
b/llvm/include/llvm/IR/ConstantFolder.h index 56da3d205fe4b7c..3583ec1d3ae3b93 100644
--- a/llvm/include/llvm/IR/ConstantFolder.h
+++ b/llvm/include/llvm/IR/ConstantFolder.h
@@ -23,6 +23,7 @@
 #include "llvm/IR/IRBuilderFolder.h"
 #include "llvm/IR/Instruction.h"
 #include "llvm/IR/Operator.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/DIBuilder.h b/llvm/include/llvm/IR/DIBuilder.h
index ecd6dd7b0a4f822..3a594efb5df5128 100644
--- a/llvm/include/llvm/IR/DIBuilder.h
+++ b/llvm/include/llvm/IR/DIBuilder.h
@@ -24,6 +24,7 @@
 #include "llvm/IR/DebugInfoMetadata.h"
 #include "llvm/IR/TrackingMDRef.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <cstdint>
 #include <optional>
diff --git a/llvm/include/llvm/IR/DebugInfo.h b/llvm/include/llvm/IR/DebugInfo.h
index 26a7cfbbb350234..0ee67a803863617 100644
--- a/llvm/include/llvm/IR/DebugInfo.h
+++ b/llvm/include/llvm/IR/DebugInfo.h
@@ -25,6 +25,7 @@
 #include "llvm/IR/DataLayout.h"
 #include "llvm/IR/IntrinsicInst.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/IR/DebugInfoMetadata.h \
b/llvm/include/llvm/IR/DebugInfoMetadata.h index 656122405209712..5f071d254a10053 \
                100644
--- a/llvm/include/llvm/IR/DebugInfoMetadata.h
+++ b/llvm/include/llvm/IR/DebugInfoMetadata.h
@@ -24,6 +24,7 @@
 #include "llvm/IR/Metadata.h"
 #include "llvm/Support/Casting.h"
 #include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Discriminator.h"
 #include <cassert>
 #include <climits>
diff --git a/llvm/include/llvm/IR/DebugLoc.h b/llvm/include/llvm/IR/DebugLoc.h
index c22d3e9b10d27fd..63b9d789e14a22f 100644
--- a/llvm/include/llvm/IR/DebugLoc.h
+++ b/llvm/include/llvm/IR/DebugLoc.h
@@ -15,6 +15,7 @@
 #define LLVM_IR_DEBUGLOC_H
 
 #include "llvm/IR/TrackingMDRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/IR/DerivedUser.h b/llvm/include/llvm/IR/DerivedUser.h
index a25d316c2d60bc5..248535f81350974 100644
--- a/llvm/include/llvm/IR/DerivedUser.h
+++ b/llvm/include/llvm/IR/DerivedUser.h
@@ -10,6 +10,7 @@
 #define LLVM_IR_DERIVEDUSER_H
 
 #include "llvm/IR/User.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/DiagnosticHandler.h \
b/llvm/include/llvm/IR/DiagnosticHandler.h index 55e5e5975808d97..da324750f134ef6 \
                100644
--- a/llvm/include/llvm/IR/DiagnosticHandler.h
+++ b/llvm/include/llvm/IR/DiagnosticHandler.h
@@ -13,6 +13,7 @@
 #define LLVM_IR_DIAGNOSTICHANDLER_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class DiagnosticInfo;
diff --git a/llvm/include/llvm/IR/DiagnosticInfo.h \
b/llvm/include/llvm/IR/DiagnosticInfo.h index 628445fe9fb2cca..7aecf56f905379f 100644
--- a/llvm/include/llvm/IR/DiagnosticInfo.h
+++ b/llvm/include/llvm/IR/DiagnosticInfo.h
@@ -21,6 +21,7 @@
 #include "llvm/ADT/Twine.h"
 #include "llvm/IR/DebugLoc.h"
 #include "llvm/Support/CBindingWrapping.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/SourceMgr.h"
 #include "llvm/Support/TypeSize.h"
diff --git a/llvm/include/llvm/IR/DiagnosticPrinter.h \
b/llvm/include/llvm/IR/DiagnosticPrinter.h index 2df6fc3dfe73903..84149bd3fc1cf4a \
                100644
--- a/llvm/include/llvm/IR/DiagnosticPrinter.h
+++ b/llvm/include/llvm/IR/DiagnosticPrinter.h
@@ -15,6 +15,7 @@
 #ifndef LLVM_IR_DIAGNOSTICPRINTER_H
 #define LLVM_IR_DIAGNOSTICPRINTER_H
 
+#include "llvm/Support/Compiler.h"
 #include <string>
 
 namespace llvm {
diff --git a/llvm/include/llvm/IR/Dominators.h b/llvm/include/llvm/IR/Dominators.h
index 6ceadbf30b895f4..a4f37501c7248b8 100644
--- a/llvm/include/llvm/IR/Dominators.h
+++ b/llvm/include/llvm/IR/Dominators.h
@@ -30,6 +30,7 @@
 #include "llvm/IR/PassManager.h"
 #include "llvm/IR/Use.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/CFGDiff.h"
 #include "llvm/Support/CFGUpdate.h"
 #include "llvm/Support/GenericDomTree.h"
diff --git a/llvm/include/llvm/IR/EHPersonalities.h \
b/llvm/include/llvm/IR/EHPersonalities.h index bd768440bfb9a62..1f426bb4c82a6cb \
                100644
--- a/llvm/include/llvm/IR/EHPersonalities.h
+++ b/llvm/include/llvm/IR/EHPersonalities.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/TinyPtrVector.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class BasicBlock;
diff --git a/llvm/include/llvm/IR/FMF.h b/llvm/include/llvm/IR/FMF.h
index 99e9a247777936b..753d1a6f224d05e 100644
--- a/llvm/include/llvm/IR/FMF.h
+++ b/llvm/include/llvm/IR/FMF.h
@@ -13,6 +13,8 @@
 #ifndef LLVM_IR_FMF_H
 #define LLVM_IR_FMF_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 class raw_ostream;
 
diff --git a/llvm/include/llvm/IR/FPEnv.h b/llvm/include/llvm/IR/FPEnv.h
index a0197377759daf3..fdf7667dd99ec9d 100644
--- a/llvm/include/llvm/IR/FPEnv.h
+++ b/llvm/include/llvm/IR/FPEnv.h
@@ -17,6 +17,7 @@
 
 #include "llvm/ADT/FloatingPointMode.h"
 #include "llvm/IR/FMF.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/IR/Function.h b/llvm/include/llvm/IR/Function.h
index 93cf0d27e9a73e5..135d6828cdb02d6 100644
--- a/llvm/include/llvm/IR/Function.h
+++ b/llvm/include/llvm/IR/Function.h
@@ -32,6 +32,7 @@
 #include "llvm/IR/OperandTraits.h"
 #include "llvm/IR/SymbolTableListTraits.h"
 #include "llvm/IR/Value.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 #include <cstdint>
diff --git a/llvm/include/llvm/IR/GCStrategy.h b/llvm/include/llvm/IR/GCStrategy.h
index 3186465f0018124..dee159e76f01894 100644
--- a/llvm/include/llvm/IR/GCStrategy.h
+++ b/llvm/include/llvm/IR/GCStrategy.h
@@ -47,6 +47,7 @@
 #ifndef LLVM_IR_GCSTRATEGY_H
 #define LLVM_IR_GCSTRATEGY_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Registry.h"
 #include <optional>
 #include <string>
diff --git a/llvm/include/llvm/IR/GVMaterializer.h \
b/llvm/include/llvm/IR/GVMaterializer.h index d62da41ebc29662..6ed6b8dcf9ee398 100644
--- a/llvm/include/llvm/IR/GVMaterializer.h
+++ b/llvm/include/llvm/IR/GVMaterializer.h
@@ -17,6 +17,7 @@
 #ifndef LLVM_IR_GVMATERIALIZER_H
 #define LLVM_IR_GVMATERIALIZER_H
 
+#include "llvm/Support/Compiler.h"
 #include <vector>
 
 namespace llvm {
diff --git a/llvm/include/llvm/IR/GetElementPtrTypeIterator.h \
b/llvm/include/llvm/IR/GetElementPtrTypeIterator.h index \
                8c6ede96c873bb8..5f95ecbbe82c5f2 100644
--- a/llvm/include/llvm/IR/GetElementPtrTypeIterator.h
+++ b/llvm/include/llvm/IR/GetElementPtrTypeIterator.h
@@ -20,6 +20,7 @@
 #include "llvm/IR/Operator.h"
 #include "llvm/IR/User.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 #include <cstdint>
diff --git a/llvm/include/llvm/IR/GlobalAlias.h b/llvm/include/llvm/IR/GlobalAlias.h
index de405da5ca23173..33365a26640ceeb 100644
--- a/llvm/include/llvm/IR/GlobalAlias.h
+++ b/llvm/include/llvm/IR/GlobalAlias.h
@@ -18,6 +18,7 @@
 #include "llvm/IR/GlobalValue.h"
 #include "llvm/IR/OperandTraits.h"
 #include "llvm/IR/Value.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/GlobalIFunc.h b/llvm/include/llvm/IR/GlobalIFunc.h
index c148ee7907789bc..23465293f74204f 100644
--- a/llvm/include/llvm/IR/GlobalIFunc.h
+++ b/llvm/include/llvm/IR/GlobalIFunc.h
@@ -22,6 +22,7 @@
 #include "llvm/IR/GlobalObject.h"
 #include "llvm/IR/OperandTraits.h"
 #include "llvm/IR/Value.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/GlobalObject.h \
b/llvm/include/llvm/IR/GlobalObject.h index 889bd3a28e12b37..d40fc0c7dfb810f 100644
--- a/llvm/include/llvm/IR/GlobalObject.h
+++ b/llvm/include/llvm/IR/GlobalObject.h
@@ -18,6 +18,7 @@
 #include "llvm/IR/GlobalValue.h"
 #include "llvm/IR/Value.h"
 #include "llvm/Support/Alignment.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/GlobalValue.h b/llvm/include/llvm/IR/GlobalValue.h
index d1891c157099d40..883592e730b1353 100644
--- a/llvm/include/llvm/IR/GlobalValue.h
+++ b/llvm/include/llvm/IR/GlobalValue.h
@@ -23,6 +23,7 @@
 #include "llvm/IR/DerivedTypes.h"
 #include "llvm/IR/Value.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/MD5.h"
 #include <cassert>
diff --git a/llvm/include/llvm/IR/GlobalVariable.h \
b/llvm/include/llvm/IR/GlobalVariable.h index 03c680e4f95585b..f8233a240b10ddc 100644
--- a/llvm/include/llvm/IR/GlobalVariable.h
+++ b/llvm/include/llvm/IR/GlobalVariable.h
@@ -25,6 +25,7 @@
 #include "llvm/IR/GlobalObject.h"
 #include "llvm/IR/OperandTraits.h"
 #include "llvm/IR/Value.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 
diff --git a/llvm/include/llvm/IR/IRBuilder.h b/llvm/include/llvm/IR/IRBuilder.h
index 28380a3f606f2cb..4d570f6cf05d874 100644
--- a/llvm/include/llvm/IR/IRBuilder.h
+++ b/llvm/include/llvm/IR/IRBuilder.h
@@ -42,6 +42,7 @@
 #include "llvm/Support/AtomicOrdering.h"
 #include "llvm/Support/CBindingWrapping.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 #include <functional>
diff --git a/llvm/include/llvm/IR/IRBuilderFolder.h \
b/llvm/include/llvm/IR/IRBuilderFolder.h index b2b27235a1e671a..beb4be8aa7cfb42 \
                100644
--- a/llvm/include/llvm/IR/IRBuilderFolder.h
+++ b/llvm/include/llvm/IR/IRBuilderFolder.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/IR/InstrTypes.h"
 #include "llvm/IR/Instruction.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/IRPrintingPasses.h \
b/llvm/include/llvm/IR/IRPrintingPasses.h index 8928ecfce313e0d..f6bea67988c536a \
                100644
--- a/llvm/include/llvm/IR/IRPrintingPasses.h
+++ b/llvm/include/llvm/IR/IRPrintingPasses.h
@@ -15,6 +15,7 @@
 #ifndef LLVM_IR_IRPRINTINGPASSES_H
 #define LLVM_IR_IRPRINTINGPASSES_H
 
+#include "llvm/Support/Compiler.h"
 #include <string>
 
 namespace llvm {
diff --git a/llvm/include/llvm/IR/InlineAsm.h b/llvm/include/llvm/IR/InlineAsm.h
index 6f21ca4dca777b5..5251815b9b12dc7 100644
--- a/llvm/include/llvm/IR/InlineAsm.h
+++ b/llvm/include/llvm/IR/InlineAsm.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/IR/Value.h"
 #include "llvm/Support/ErrorHandling.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <string>
 #include <vector>
diff --git a/llvm/include/llvm/IR/InstIterator.h \
b/llvm/include/llvm/IR/InstIterator.h index 054fe4e9cbe9920..6da72254304d0ce 100644
--- a/llvm/include/llvm/IR/InstIterator.h
+++ b/llvm/include/llvm/IR/InstIterator.h
@@ -22,6 +22,7 @@
 #include "llvm/IR/BasicBlock.h"
 #include "llvm/IR/Function.h"
 #include "llvm/IR/SymbolTableListTraits.h"
+#include "llvm/Support/Compiler.h"
 #include <iterator>
 
 namespace llvm {
diff --git a/llvm/include/llvm/IR/InstVisitor.h b/llvm/include/llvm/IR/InstVisitor.h
index 311e0ac47ddfadd..48dac110be2beda 100644
--- a/llvm/include/llvm/IR/InstVisitor.h
+++ b/llvm/include/llvm/IR/InstVisitor.h
@@ -15,6 +15,7 @@
 #include "llvm/IR/IntrinsicInst.h"
 #include "llvm/IR/Intrinsics.h"
 #include "llvm/IR/Module.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/InstrTypes.h b/llvm/include/llvm/IR/InstrTypes.h
index a48852edb46e622..cdf7253dfa00057 100644
--- a/llvm/include/llvm/IR/InstrTypes.h
+++ b/llvm/include/llvm/IR/InstrTypes.h
@@ -29,6 +29,7 @@
 #include "llvm/IR/LLVMContext.h"
 #include "llvm/IR/OperandTraits.h"
 #include "llvm/IR/User.h"
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <cassert>
 #include <cstddef>
diff --git a/llvm/include/llvm/IR/Instruction.h b/llvm/include/llvm/IR/Instruction.h
index 5fd8b27447b77df..0b9c8eb9b64743d 100644
--- a/llvm/include/llvm/IR/Instruction.h
+++ b/llvm/include/llvm/IR/Instruction.h
@@ -23,6 +23,7 @@
 #include "llvm/IR/User.h"
 #include "llvm/IR/Value.h"
 #include "llvm/Support/AtomicOrdering.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <utility>
 
diff --git a/llvm/include/llvm/IR/Instructions.h \
b/llvm/include/llvm/IR/Instructions.h index d7b1568ea2c01cf..ba2426e570dc25e 100644
--- a/llvm/include/llvm/IR/Instructions.h
+++ b/llvm/include/llvm/IR/Instructions.h
@@ -32,6 +32,7 @@
 #include "llvm/IR/Use.h"
 #include "llvm/IR/User.h"
 #include "llvm/Support/AtomicOrdering.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <cassert>
 #include <cstddef>
diff --git a/llvm/include/llvm/IR/IntrinsicInst.h \
b/llvm/include/llvm/IR/IntrinsicInst.h index 62bd833198f022b..ada326d91a581ea 100644
--- a/llvm/include/llvm/IR/IntrinsicInst.h
+++ b/llvm/include/llvm/IR/IntrinsicInst.h
@@ -33,6 +33,7 @@
 #include "llvm/IR/Intrinsics.h"
 #include "llvm/IR/Value.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 #include <optional>
diff --git a/llvm/include/llvm/IR/Intrinsics.h b/llvm/include/llvm/IR/Intrinsics.h
index 6ac02567c43b5bc..fbadd753df5d51f 100644
--- a/llvm/include/llvm/IR/Intrinsics.h
+++ b/llvm/include/llvm/IR/Intrinsics.h
@@ -16,6 +16,7 @@
 #define LLVM_IR_INTRINSICS_H
 
 #include "llvm/ADT/ArrayRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/TypeSize.h"
 #include <optional>
 #include <string>
diff --git a/llvm/include/llvm/IR/LLVMContext.h b/llvm/include/llvm/IR/LLVMContext.h
index c13a783e86c7a0d..2f243bb0fcc4822 100644
--- a/llvm/include/llvm/IR/LLVMContext.h
+++ b/llvm/include/llvm/IR/LLVMContext.h
@@ -17,6 +17,7 @@
 #include "llvm-c/Types.h"
 #include "llvm/IR/DiagnosticHandler.h"
 #include "llvm/Support/CBindingWrapping.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <memory>
 #include <optional>
diff --git a/llvm/include/llvm/IR/LLVMRemarkStreamer.h \
b/llvm/include/llvm/IR/LLVMRemarkStreamer.h index 7e78c4f806b4028..6710a61e6c3255b \
                100644
--- a/llvm/include/llvm/IR/LLVMRemarkStreamer.h
+++ b/llvm/include/llvm/IR/LLVMRemarkStreamer.h
@@ -15,6 +15,7 @@
 #define LLVM_IR_LLVMREMARKSTREAMER_H
 
 #include "llvm/Remarks/Remark.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <memory>
 #include <optional>
diff --git a/llvm/include/llvm/IR/LegacyPassManager.h \
b/llvm/include/llvm/IR/LegacyPassManager.h index b3a4820ba0e492b..5163bb1f67f9039 \
                100644
--- a/llvm/include/llvm/IR/LegacyPassManager.h
+++ b/llvm/include/llvm/IR/LegacyPassManager.h
@@ -17,6 +17,7 @@
 #define LLVM_IR_LEGACYPASSMANAGER_H
 
 #include "llvm/Support/CBindingWrapping.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/LegacyPassManagers.h \
b/llvm/include/llvm/IR/LegacyPassManagers.h index 41c11d26aa456c6..0ab95fa03d77e0f \
                100644
--- a/llvm/include/llvm/IR/LegacyPassManagers.h
+++ b/llvm/include/llvm/IR/LegacyPassManagers.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 #include <vector>
 
 //===----------------------------------------------------------------------===//
diff --git a/llvm/include/llvm/IR/LegacyPassNameParser.h \
b/llvm/include/llvm/IR/LegacyPassNameParser.h index c33b9fc404729f6..fca6d16405da519 \
                100644
--- a/llvm/include/llvm/IR/LegacyPassNameParser.h
+++ b/llvm/include/llvm/IR/LegacyPassNameParser.h
@@ -28,6 +28,7 @@
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/Pass.h"
 #include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/raw_ostream.h"
 #include <cstring>
diff --git a/llvm/include/llvm/IR/MDBuilder.h b/llvm/include/llvm/IR/MDBuilder.h
index 39165453de16b09..213be47c49f98f6 100644
--- a/llvm/include/llvm/IR/MDBuilder.h
+++ b/llvm/include/llvm/IR/MDBuilder.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/IR/GlobalValue.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 #include <utility>
 
diff --git a/llvm/include/llvm/IR/Mangler.h b/llvm/include/llvm/IR/Mangler.h
index 747a4085235c9b8..f3380a279f28ead 100644
--- a/llvm/include/llvm/IR/Mangler.h
+++ b/llvm/include/llvm/IR/Mangler.h
@@ -14,6 +14,7 @@
 #define LLVM_IR_MANGLER_H
 
 #include "llvm/ADT/DenseMap.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/MatrixBuilder.h \
b/llvm/include/llvm/IR/MatrixBuilder.h index dbf2cfb7c5e9666..694a1b7a8e9194e 100644
--- a/llvm/include/llvm/IR/MatrixBuilder.h
+++ b/llvm/include/llvm/IR/MatrixBuilder.h
@@ -23,6 +23,7 @@
 #include "llvm/IR/Type.h"
 #include "llvm/IR/Value.h"
 #include "llvm/Support/Alignment.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/Metadata.h b/llvm/include/llvm/IR/Metadata.h
index 9659dbe4f281e42..9890a6518187883 100644
--- a/llvm/include/llvm/IR/Metadata.h
+++ b/llvm/include/llvm/IR/Metadata.h
@@ -28,6 +28,7 @@
 #include "llvm/IR/Value.h"
 #include "llvm/Support/CBindingWrapping.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <cassert>
 #include <cstddef>
diff --git a/llvm/include/llvm/IR/Module.h b/llvm/include/llvm/IR/Module.h
index 670a40b28eabbea..9fa0fb34a8fcd6d 100644
--- a/llvm/include/llvm/IR/Module.h
+++ b/llvm/include/llvm/IR/Module.h
@@ -31,6 +31,7 @@
 #include "llvm/IR/SymbolTableListTraits.h"
 #include "llvm/Support/CBindingWrapping.h"
 #include "llvm/Support/CodeGen.h"
+#include "llvm/Support/Compiler.h"
 #include <cstddef>
 #include <cstdint>
 #include <iterator>
diff --git a/llvm/include/llvm/IR/ModuleSlotTracker.h \
b/llvm/include/llvm/IR/ModuleSlotTracker.h index 37cfc0f07280cf9..9a56d485297b509 \
                100644
--- a/llvm/include/llvm/IR/ModuleSlotTracker.h
+++ b/llvm/include/llvm/IR/ModuleSlotTracker.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_IR_MODULESLOTTRACKER_H
 #define LLVM_IR_MODULESLOTTRACKER_H
 
+#include "llvm/Support/Compiler.h"
 #include <functional>
 #include <memory>
 #include <utility>
diff --git a/llvm/include/llvm/IR/ModuleSummaryIndex.h \
b/llvm/include/llvm/IR/ModuleSummaryIndex.h index 91a0133500eb7be..3b8d4ee80fa6f2f \
                100644
--- a/llvm/include/llvm/IR/ModuleSummaryIndex.h
+++ b/llvm/include/llvm/IR/ModuleSummaryIndex.h
@@ -27,6 +27,7 @@
 #include "llvm/IR/GlobalValue.h"
 #include "llvm/IR/Module.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MathExtras.h"
 #include "llvm/Support/ScaledNumber.h"
 #include "llvm/Support/StringSaver.h"
diff --git a/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h \
b/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h index \
                33e57e5f2102fde..0e23edbbc4608ad 100644
--- a/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h
+++ b/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h
@@ -10,6 +10,7 @@
 #define LLVM_IR_MODULESUMMARYINDEXYAML_H
 
 #include "llvm/IR/ModuleSummaryIndex.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/YAMLTraits.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/IR/NoFolder.h b/llvm/include/llvm/IR/NoFolder.h
index 56ccfc694c5f1f8..9aecedce8f34758 100644
--- a/llvm/include/llvm/IR/NoFolder.h
+++ b/llvm/include/llvm/IR/NoFolder.h
@@ -28,6 +28,7 @@
 #include "llvm/IR/InstrTypes.h"
 #include "llvm/IR/Instruction.h"
 #include "llvm/IR/Instructions.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/OperandTraits.h \
b/llvm/include/llvm/IR/OperandTraits.h index 979ad35019f8c79..5998a545715e246 100644
--- a/llvm/include/llvm/IR/OperandTraits.h
+++ b/llvm/include/llvm/IR/OperandTraits.h
@@ -15,6 +15,7 @@
 #define LLVM_IR_OPERANDTRAITS_H
 
 #include "llvm/IR/User.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/Operator.h b/llvm/include/llvm/IR/Operator.h
index a9da6292e8c779d..a14c5110d2bdc1c 100644
--- a/llvm/include/llvm/IR/Operator.h
+++ b/llvm/include/llvm/IR/Operator.h
@@ -21,6 +21,7 @@
 #include "llvm/IR/Type.h"
 #include "llvm/IR/Value.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include <cstddef>
 #include <optional>
 
diff --git a/llvm/include/llvm/IR/OptBisect.h b/llvm/include/llvm/IR/OptBisect.h
index 2987e5ad90c4d3c..cbd66844aac09c4 100644
--- a/llvm/include/llvm/IR/OptBisect.h
+++ b/llvm/include/llvm/IR/OptBisect.h
@@ -15,6 +15,7 @@
 #define LLVM_IR_OPTBISECT_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <limits>
 
 namespace llvm {
diff --git a/llvm/include/llvm/IR/PassInstrumentation.h \
b/llvm/include/llvm/IR/PassInstrumentation.h index 519a5e46b4373b7..3337dcb9cff07f4 \
                100644
--- a/llvm/include/llvm/IR/PassInstrumentation.h
+++ b/llvm/include/llvm/IR/PassInstrumentation.h
@@ -53,6 +53,7 @@
 #include "llvm/ADT/FunctionExtras.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringMap.h"
+#include "llvm/Support/Compiler.h"
 #include <type_traits>
 #include <vector>
 
diff --git a/llvm/include/llvm/IR/PassManager.h b/llvm/include/llvm/IR/PassManager.h
index 5fe28f8556e5bba..11af6b9ff3069b5 100644
--- a/llvm/include/llvm/IR/PassManager.h
+++ b/llvm/include/llvm/IR/PassManager.h
@@ -46,6 +46,7 @@
 #include "llvm/IR/Module.h"
 #include "llvm/IR/PassInstrumentation.h"
 #include "llvm/IR/PassManagerInternal.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/TimeProfiler.h"
 #include "llvm/Support/TypeName.h"
 #include <cassert>
diff --git a/llvm/include/llvm/IR/PassManagerInternal.h \
b/llvm/include/llvm/IR/PassManagerInternal.h index 8e19f0aa16a9bb7..204dd03d3a18a4f \
                100644
--- a/llvm/include/llvm/IR/PassManagerInternal.h
+++ b/llvm/include/llvm/IR/PassManagerInternal.h
@@ -19,6 +19,7 @@
 
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 #include <memory>
 #include <utility>
diff --git a/llvm/include/llvm/IR/PassTimingInfo.h \
b/llvm/include/llvm/IR/PassTimingInfo.h index d464b998fa706af..0b0bd247410375d 100644
--- a/llvm/include/llvm/IR/PassTimingInfo.h
+++ b/llvm/include/llvm/IR/PassTimingInfo.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Timer.h"
 #include <memory>
 #include <utility>
diff --git a/llvm/include/llvm/IR/PatternMatch.h \
b/llvm/include/llvm/IR/PatternMatch.h index 621eba6bd0b679b..e6d23dfaaeaf1ba 100644
--- a/llvm/include/llvm/IR/PatternMatch.h
+++ b/llvm/include/llvm/IR/PatternMatch.h
@@ -41,6 +41,7 @@
 #include "llvm/IR/Operator.h"
 #include "llvm/IR/Value.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/IR/PredIteratorCache.h \
b/llvm/include/llvm/IR/PredIteratorCache.h index fc8cf20e9f759e9..a7751ce6279bd95 \
                100644
--- a/llvm/include/llvm/IR/PredIteratorCache.h
+++ b/llvm/include/llvm/IR/PredIteratorCache.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/IR/CFG.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/PrintPasses.h b/llvm/include/llvm/IR/PrintPasses.h
index 95b97e76c867cb2..96b44ba5644cf42 100644
--- a/llvm/include/llvm/IR/PrintPasses.h
+++ b/llvm/include/llvm/IR/PrintPasses.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Compiler.h"
 #include <vector>
 
 namespace llvm {
diff --git a/llvm/include/llvm/IR/ProfDataUtils.h \
b/llvm/include/llvm/IR/ProfDataUtils.h index 8019d0a3969b10e..649b861663ccf8c 100644
--- a/llvm/include/llvm/IR/ProfDataUtils.h
+++ b/llvm/include/llvm/IR/ProfDataUtils.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/Twine.h"
 #include "llvm/IR/Metadata.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/ProfileSummary.h \
b/llvm/include/llvm/IR/ProfileSummary.h index 4bb6bb8d4a405d4..6561ac7e48eceb7 100644
--- a/llvm/include/llvm/IR/ProfileSummary.h
+++ b/llvm/include/llvm/IR/ProfileSummary.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_IR_PROFILESUMMARY_H
 #define LLVM_IR_PROFILESUMMARY_H
 
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <cassert>
 #include <cstdint>
diff --git a/llvm/include/llvm/IR/PseudoProbe.h b/llvm/include/llvm/IR/PseudoProbe.h
index cdbd498a8be61ac..fe25a552b1d48cf 100644
--- a/llvm/include/llvm/IR/PseudoProbe.h
+++ b/llvm/include/llvm/IR/PseudoProbe.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_IR_PSEUDOPROBE_H
 #define LLVM_IR_PSEUDOPROBE_H
 
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 #include <limits>
diff --git a/llvm/include/llvm/IR/ReplaceConstant.h \
b/llvm/include/llvm/IR/ReplaceConstant.h index 72823c9ab164dda..77a9a014829a1d4 \
                100644
--- a/llvm/include/llvm/IR/ReplaceConstant.h
+++ b/llvm/include/llvm/IR/ReplaceConstant.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_IR_REPLACECONSTANT_H
 #define LLVM_IR_REPLACECONSTANT_H
 
+#include "llvm/Support/Compiler.h"
 #include <map>
 #include <vector>
 
diff --git a/llvm/include/llvm/IR/SSAContext.h b/llvm/include/llvm/IR/SSAContext.h
index 5180c92d65565f8..f13f23c999db67e 100644
--- a/llvm/include/llvm/IR/SSAContext.h
+++ b/llvm/include/llvm/IR/SSAContext.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/GenericSSAContext.h"
 #include "llvm/IR/BasicBlock.h"
 #include "llvm/IR/ModuleSlotTracker.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Printable.h"
 
 #include <memory>
diff --git a/llvm/include/llvm/IR/SafepointIRVerifier.h \
b/llvm/include/llvm/IR/SafepointIRVerifier.h index 246d236adb389a0..f56e2f4837428f4 \
                100644
--- a/llvm/include/llvm/IR/SafepointIRVerifier.h
+++ b/llvm/include/llvm/IR/SafepointIRVerifier.h
@@ -19,6 +19,7 @@
 #define LLVM_IR_SAFEPOINTIRVERIFIER_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/Statepoint.h b/llvm/include/llvm/IR/Statepoint.h
index 21c4a3eaa5ac2d3..c976c315a1a33c7 100644
--- a/llvm/include/llvm/IR/Statepoint.h
+++ b/llvm/include/llvm/IR/Statepoint.h
@@ -25,6 +25,7 @@
 #include "llvm/IR/IntrinsicInst.h"
 #include "llvm/IR/Intrinsics.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MathExtras.h"
 #include <cassert>
 #include <cstddef>
diff --git a/llvm/include/llvm/IR/StructuralHash.h \
b/llvm/include/llvm/IR/StructuralHash.h index 1bdeb85afa3c50f..f7421b19caefe9f 100644
--- a/llvm/include/llvm/IR/StructuralHash.h
+++ b/llvm/include/llvm/IR/StructuralHash.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_IR_STRUCTURALHASH_H
 #define LLVM_IR_STRUCTURALHASH_H
 
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/IR/SymbolTableListTraits.h \
b/llvm/include/llvm/IR/SymbolTableListTraits.h index 8af712374bfafd0..d9dd06a248fa70a \
                100644
--- a/llvm/include/llvm/IR/SymbolTableListTraits.h
+++ b/llvm/include/llvm/IR/SymbolTableListTraits.h
@@ -26,6 +26,7 @@
 
 #include "llvm/ADT/ilist.h"
 #include "llvm/ADT/simple_ilist.h"
+#include "llvm/Support/Compiler.h"
 #include <cstddef>
 
 namespace llvm {
diff --git a/llvm/include/llvm/IR/TrackingMDRef.h \
b/llvm/include/llvm/IR/TrackingMDRef.h index d7377398b91b3cd..219630ba54f4304 100644
--- a/llvm/include/llvm/IR/TrackingMDRef.h
+++ b/llvm/include/llvm/IR/TrackingMDRef.h
@@ -14,6 +14,7 @@
 #define LLVM_IR_TRACKINGMDREF_H
 
 #include "llvm/IR/Metadata.h"
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <cassert>
 
diff --git a/llvm/include/llvm/IR/TypeFinder.h b/llvm/include/llvm/IR/TypeFinder.h
index dd2b70c65c2d2bb..770193a176a3b97 100644
--- a/llvm/include/llvm/IR/TypeFinder.h
+++ b/llvm/include/llvm/IR/TypeFinder.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/DenseSet.h"
 #include "llvm/IR/Attributes.h"
+#include "llvm/Support/Compiler.h"
 #include <cstddef>
 #include <vector>
 
diff --git a/llvm/include/llvm/IR/TypedPointerType.h \
b/llvm/include/llvm/IR/TypedPointerType.h index 1bea715a64b6920..ccc303207970671 \
                100644
--- a/llvm/include/llvm/IR/TypedPointerType.h
+++ b/llvm/include/llvm/IR/TypedPointerType.h
@@ -15,6 +15,7 @@
 #define LLVM_IR_TYPEDPOINTERTYPE_H
 
 #include "llvm/IR/Type.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/UseListOrder.h \
b/llvm/include/llvm/IR/UseListOrder.h index a1f313e269b29ca..7d9b9bd7a8e3a5d 100644
--- a/llvm/include/llvm/IR/UseListOrder.h
+++ b/llvm/include/llvm/IR/UseListOrder.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_IR_USELISTORDER_H
 #define LLVM_IR_USELISTORDER_H
 
+#include "llvm/Support/Compiler.h"
 #include <cstddef>
 #include <vector>
 
diff --git a/llvm/include/llvm/IR/Value.h b/llvm/include/llvm/IR/Value.h
index 16ae451114b52f1..4ee27d214d49bb4 100644
--- a/llvm/include/llvm/IR/Value.h
+++ b/llvm/include/llvm/IR/Value.h
@@ -21,6 +21,7 @@
 #include "llvm/Support/Alignment.h"
 #include "llvm/Support/CBindingWrapping.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <iterator>
 #include <memory>
diff --git a/llvm/include/llvm/IR/ValueHandle.h b/llvm/include/llvm/IR/ValueHandle.h
index 29560815ea559ea..e58c9d839c4e103 100644
--- a/llvm/include/llvm/IR/ValueHandle.h
+++ b/llvm/include/llvm/IR/ValueHandle.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/PointerIntPair.h"
 #include "llvm/IR/Value.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 
 namespace llvm {
diff --git a/llvm/include/llvm/IR/ValueMap.h b/llvm/include/llvm/IR/ValueMap.h
index d12d639aaa88866..44062ff655ae3e0 100644
--- a/llvm/include/llvm/IR/ValueMap.h
+++ b/llvm/include/llvm/IR/ValueMap.h
@@ -30,6 +30,7 @@
 #include "llvm/IR/TrackingMDRef.h"
 #include "llvm/IR/ValueHandle.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Mutex.h"
 #include <algorithm>
 #include <cassert>
diff --git a/llvm/include/llvm/IR/ValueSymbolTable.h \
b/llvm/include/llvm/IR/ValueSymbolTable.h index 43d00268f4b2218..19d4da2d2fc7cf2 \
                100644
--- a/llvm/include/llvm/IR/ValueSymbolTable.h
+++ b/llvm/include/llvm/IR/ValueSymbolTable.h
@@ -16,6 +16,7 @@
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/IR/Value.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/IR/VectorBuilder.h \
b/llvm/include/llvm/IR/VectorBuilder.h index 301edaed70fe88c..922f070ee4922b1 100644
--- a/llvm/include/llvm/IR/VectorBuilder.h
+++ b/llvm/include/llvm/IR/VectorBuilder.h
@@ -19,6 +19,7 @@
 #include <llvm/IR/InstrTypes.h>
 #include <llvm/IR/Instruction.h>
 #include <llvm/IR/Value.h>
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/IR/Verifier.h b/llvm/include/llvm/IR/Verifier.h
index b25f8eb77ee38b3..833e1a26c7036af 100644
--- a/llvm/include/llvm/IR/Verifier.h
+++ b/llvm/include/llvm/IR/Verifier.h
@@ -22,6 +22,7 @@
 
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include <utility>
 
 namespace llvm {
diff --git a/llvm/include/llvm/IRPrinter/IRPrintingPasses.h \
b/llvm/include/llvm/IRPrinter/IRPrintingPasses.h index \
                4be1f3c967e2446..7db7a641887f063 100644
--- a/llvm/include/llvm/IRPrinter/IRPrintingPasses.h
+++ b/llvm/include/llvm/IRPrinter/IRPrintingPasses.h
@@ -19,6 +19,7 @@
 #define LLVM_IRPRINTER_IRPRINTINGPASSES_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include <string>
 
 namespace llvm {
diff --git a/llvm/include/llvm/IRReader/IRReader.h \
b/llvm/include/llvm/IRReader/IRReader.h index 644fea82bfbe056..eaec2c0a8486721 100644
--- a/llvm/include/llvm/IRReader/IRReader.h
+++ b/llvm/include/llvm/IRReader/IRReader.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/STLFunctionalExtras.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Bitcode/BitcodeReader.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 #include <optional>
 
diff --git a/llvm/include/llvm/InitializePasses.h \
b/llvm/include/llvm/InitializePasses.h index c6fee47b464b952..a8352ab71f12bed 100644
--- a/llvm/include/llvm/InitializePasses.h
+++ b/llvm/include/llvm/InitializePasses.h
@@ -14,6 +14,8 @@
 #ifndef LLVM_INITIALIZEPASSES_H
 #define LLVM_INITIALIZEPASSES_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 
 class PassRegistry;
diff --git a/llvm/include/llvm/InterfaceStub/ELFObjHandler.h \
b/llvm/include/llvm/InterfaceStub/ELFObjHandler.h index \
                c15838c4ae0af1c..2ef0218a681b08b 100644
--- a/llvm/include/llvm/InterfaceStub/ELFObjHandler.h
+++ b/llvm/include/llvm/InterfaceStub/ELFObjHandler.h
@@ -14,6 +14,7 @@
 #define LLVM_INTERFACESTUB_ELFOBJHANDLER_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MemoryBufferRef.h"
 #include <memory>
diff --git a/llvm/include/llvm/InterfaceStub/IFSHandler.h \
b/llvm/include/llvm/InterfaceStub/IFSHandler.h index 09687bfb9e44f8b..faa3709dc556a53 \
                100644
--- a/llvm/include/llvm/InterfaceStub/IFSHandler.h
+++ b/llvm/include/llvm/InterfaceStub/IFSHandler.h
@@ -16,6 +16,7 @@
 #define LLVM_INTERFACESTUB_IFSHANDLER_H
 
 #include "IFSStub.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/VersionTuple.h"
 #include <memory>
diff --git a/llvm/include/llvm/InterfaceStub/IFSStub.h \
b/llvm/include/llvm/InterfaceStub/IFSStub.h index 09f96f72950cf68..03354f5d50c44f4 \
                100644
--- a/llvm/include/llvm/InterfaceStub/IFSStub.h
+++ b/llvm/include/llvm/InterfaceStub/IFSStub.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_INTERFACESTUB_IFSSTUB_H
 #define LLVM_INTERFACESTUB_IFSSTUB_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/VersionTuple.h"
 #include <optional>
 #include <vector>
diff --git a/llvm/include/llvm/LTO/Config.h b/llvm/include/llvm/LTO/Config.h
index 5c23ba4f7ac498f..16d38ad8ad06da7 100644
--- a/llvm/include/llvm/LTO/Config.h
+++ b/llvm/include/llvm/LTO/Config.h
@@ -22,6 +22,7 @@
 #include "llvm/IR/LegacyPassManager.h"
 #include "llvm/Passes/PassBuilder.h"
 #include "llvm/Support/CodeGen.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Target/TargetOptions.h"
 
 #include <functional>
diff --git a/llvm/include/llvm/LTO/LTO.h b/llvm/include/llvm/LTO/LTO.h
index 150b31e3e8e40c6..e8138978f076f1a 100644
--- a/llvm/include/llvm/LTO/LTO.h
+++ b/llvm/include/llvm/LTO/LTO.h
@@ -22,6 +22,7 @@
 #include "llvm/LTO/Config.h"
 #include "llvm/Object/IRSymtab.h"
 #include "llvm/Support/Caching.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/thread.h"
 #include "llvm/Transforms/IPO/FunctionAttrs.h"
diff --git a/llvm/include/llvm/LTO/LTOBackend.h b/llvm/include/llvm/LTO/LTOBackend.h
index de89f4bb10dff26..a010f6a24f4106e 100644
--- a/llvm/include/llvm/LTO/LTOBackend.h
+++ b/llvm/include/llvm/LTO/LTOBackend.h
@@ -20,6 +20,7 @@
 #include "llvm/IR/DiagnosticInfo.h"
 #include "llvm/IR/ModuleSummaryIndex.h"
 #include "llvm/LTO/LTO.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/Target/TargetOptions.h"
 #include "llvm/Transforms/IPO/FunctionImport.h"
diff --git a/llvm/include/llvm/LTO/SummaryBasedOptimizations.h \
b/llvm/include/llvm/LTO/SummaryBasedOptimizations.h index \
                508ab2587ac56a0..2923ee55dde0f03 100644
--- a/llvm/include/llvm/LTO/SummaryBasedOptimizations.h
+++ b/llvm/include/llvm/LTO/SummaryBasedOptimizations.h
@@ -8,6 +8,9 @@
 
 #ifndef LLVM_LTO_SUMMARYBASEDOPTIMIZATIONS_H
 #define LLVM_LTO_SUMMARYBASEDOPTIMIZATIONS_H
+
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 class ModuleSummaryIndex;
 
diff --git a/llvm/include/llvm/LTO/legacy/LTOCodeGenerator.h \
b/llvm/include/llvm/LTO/legacy/LTOCodeGenerator.h index \
                2093eaa93c85401..d0af3c01748f216 100644
--- a/llvm/include/llvm/LTO/legacy/LTOCodeGenerator.h
+++ b/llvm/include/llvm/LTO/legacy/LTOCodeGenerator.h
@@ -45,6 +45,7 @@
 #include "llvm/LTO/Config.h"
 #include "llvm/LTO/LTO.h"
 #include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/ToolOutputFile.h"
 #include "llvm/Target/TargetMachine.h"
diff --git a/llvm/include/llvm/LTO/legacy/LTOModule.h \
b/llvm/include/llvm/LTO/legacy/LTOModule.h index 1b2de3b333855c8..f1c503128c51075 \
                100644
--- a/llvm/include/llvm/LTO/legacy/LTOModule.h
+++ b/llvm/include/llvm/LTO/legacy/LTOModule.h
@@ -20,6 +20,7 @@
 #include "llvm/LTO/LTO.h"
 #include "llvm/Object/IRObjectFile.h"
 #include "llvm/Object/ModuleSymbolTable.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Target/TargetMachine.h"
 #include <string>
 #include <vector>
diff --git a/llvm/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h \
b/llvm/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h index \
                37e9b175c452f6e..2b3a1f57f5fe793 100644
--- a/llvm/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h
+++ b/llvm/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h
@@ -21,6 +21,7 @@
 #include "llvm/LTO/LTO.h"
 #include "llvm/Support/CachePruning.h"
 #include "llvm/Support/CodeGen.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/Target/TargetOptions.h"
 #include "llvm/TargetParser/Triple.h"
diff --git a/llvm/include/llvm/LTO/legacy/UpdateCompilerUsed.h \
b/llvm/include/llvm/LTO/legacy/UpdateCompilerUsed.h index \
                25a8c553ccb8c1f..2fb42cf12eeb3e2 100644
--- a/llvm/include/llvm/LTO/legacy/UpdateCompilerUsed.h
+++ b/llvm/include/llvm/LTO/legacy/UpdateCompilerUsed.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/StringSet.h"
 #include "llvm/IR/GlobalValue.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Module;
diff --git a/llvm/include/llvm/Linker/IRMover.h b/llvm/include/llvm/Linker/IRMover.h
index 1e3c5394ffa2af3..425190beee7b718 100644
--- a/llvm/include/llvm/Linker/IRMover.h
+++ b/llvm/include/llvm/Linker/IRMover.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/DenseSet.h"
 #include "llvm/ADT/FunctionExtras.h"
+#include "llvm/Support/Compiler.h"
 #include <functional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Linker/Linker.h b/llvm/include/llvm/Linker/Linker.h
index ac8041d8df1afa6..7af75c934785f60 100644
--- a/llvm/include/llvm/Linker/Linker.h
+++ b/llvm/include/llvm/Linker/Linker.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/StringSet.h"
 #include "llvm/Linker/IRMover.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Module;
diff --git a/llvm/include/llvm/MC/ConstantPools.h \
b/llvm/include/llvm/MC/ConstantPools.h index 7eac75362effdc8..e032072a8ed3ec3 100644
--- a/llvm/include/llvm/MC/ConstantPools.h
+++ b/llvm/include/llvm/MC/ConstantPools.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/MapVector.h"
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/SMLoc.h"
 #include <cstdint>
 #include <map>
diff --git a/llvm/include/llvm/MC/DXContainerPSVInfo.h \
b/llvm/include/llvm/MC/DXContainerPSVInfo.h index e17054365d5cf84..f5cd5b2fcbe0c37 \
                100644
--- a/llvm/include/llvm/MC/DXContainerPSVInfo.h
+++ b/llvm/include/llvm/MC/DXContainerPSVInfo.h
@@ -10,6 +10,7 @@
 #define LLVM_MC_DXCONTAINERPSVINFO_H
 
 #include "llvm/BinaryFormat/DXContainer.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/TargetParser/Triple.h"
 
 #include <numeric>
diff --git a/llvm/include/llvm/MC/MCAsmBackend.h \
b/llvm/include/llvm/MC/MCAsmBackend.h index 11bb612c4f30e3b..c5573bfecca6415 100644
--- a/llvm/include/llvm/MC/MCAsmBackend.h
+++ b/llvm/include/llvm/MC/MCAsmBackend.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/MC/MCDirectives.h"
 #include "llvm/MC/MCFixup.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include <cstdint>
 
diff --git a/llvm/include/llvm/MC/MCAsmInfo.h b/llvm/include/llvm/MC/MCAsmInfo.h
index c28cd12112358c7..35386ecb878da1a 100644
--- a/llvm/include/llvm/MC/MCAsmInfo.h
+++ b/llvm/include/llvm/MC/MCAsmInfo.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/MC/MCDirectives.h"
 #include "llvm/MC/MCTargetOptions.h"
+#include "llvm/Support/Compiler.h"
 #include <vector>
 
 namespace llvm {
diff --git a/llvm/include/llvm/MC/MCAsmInfoCOFF.h \
b/llvm/include/llvm/MC/MCAsmInfoCOFF.h index 1dfb4750af66a91..17de5b0ab126512 100644
--- a/llvm/include/llvm/MC/MCAsmInfoCOFF.h
+++ b/llvm/include/llvm/MC/MCAsmInfoCOFF.h
@@ -10,6 +10,7 @@
 #define LLVM_MC_MCASMINFOCOFF_H
 
 #include "llvm/MC/MCAsmInfo.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/MC/MCAsmInfoDarwin.h \
b/llvm/include/llvm/MC/MCAsmInfoDarwin.h index c889ce99cebeb87..ed66a3224eb42ec \
                100644
--- a/llvm/include/llvm/MC/MCAsmInfoDarwin.h
+++ b/llvm/include/llvm/MC/MCAsmInfoDarwin.h
@@ -15,6 +15,7 @@
 #define LLVM_MC_MCASMINFODARWIN_H
 
 #include "llvm/MC/MCAsmInfo.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/MC/MCAsmInfoELF.h \
b/llvm/include/llvm/MC/MCAsmInfoELF.h index 408d4df76412e49..18e3cf1010ccd92 100644
--- a/llvm/include/llvm/MC/MCAsmInfoELF.h
+++ b/llvm/include/llvm/MC/MCAsmInfoELF.h
@@ -10,6 +10,7 @@
 #define LLVM_MC_MCASMINFOELF_H
 
 #include "llvm/MC/MCAsmInfo.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/MC/MCAsmInfoGOFF.h \
b/llvm/include/llvm/MC/MCAsmInfoGOFF.h index 1f3b26311b37ef6..126739f90948fab 100644
--- a/llvm/include/llvm/MC/MCAsmInfoGOFF.h
+++ b/llvm/include/llvm/MC/MCAsmInfoGOFF.h
@@ -16,6 +16,7 @@
 #define LLVM_MC_MCASMINFOGOFF_H
 
 #include "llvm/MC/MCAsmInfo.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class MCAsmInfoGOFF : public MCAsmInfo {
diff --git a/llvm/include/llvm/MC/MCAsmInfoWasm.h \
b/llvm/include/llvm/MC/MCAsmInfoWasm.h index 3afc610b8b07b65..ab350bf612714e3 100644
--- a/llvm/include/llvm/MC/MCAsmInfoWasm.h
+++ b/llvm/include/llvm/MC/MCAsmInfoWasm.h
@@ -10,6 +10,7 @@
 #define LLVM_MC_MCASMINFOWASM_H
 
 #include "llvm/MC/MCAsmInfo.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class MCAsmInfoWasm : public MCAsmInfo {
diff --git a/llvm/include/llvm/MC/MCAsmInfoXCOFF.h \
b/llvm/include/llvm/MC/MCAsmInfoXCOFF.h index 5483899d58753af..648548312c17040 100644
--- a/llvm/include/llvm/MC/MCAsmInfoXCOFF.h
+++ b/llvm/include/llvm/MC/MCAsmInfoXCOFF.h
@@ -10,6 +10,7 @@
 #define LLVM_MC_MCASMINFOXCOFF_H
 
 #include "llvm/MC/MCAsmInfo.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/MC/MCAsmLayout.h b/llvm/include/llvm/MC/MCAsmLayout.h
index 94cfb76bdce4db7..518c9d92dea0908 100644
--- a/llvm/include/llvm/MC/MCAsmLayout.h
+++ b/llvm/include/llvm/MC/MCAsmLayout.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class MCAssembler;
diff --git a/llvm/include/llvm/MC/MCAsmMacro.h b/llvm/include/llvm/MC/MCAsmMacro.h
index 3e8d898af308ab2..ae2258a44843856 100644
--- a/llvm/include/llvm/MC/MCAsmMacro.h
+++ b/llvm/include/llvm/MC/MCAsmMacro.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/APInt.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/SMLoc.h"
 #include <vector>
diff --git a/llvm/include/llvm/MC/MCAssembler.h b/llvm/include/llvm/MC/MCAssembler.h
index 5e1fc738b1dab4b..3f5a81436ae71ec 100644
--- a/llvm/include/llvm/MC/MCAssembler.h
+++ b/llvm/include/llvm/MC/MCAssembler.h
@@ -19,6 +19,7 @@
 #include "llvm/MC/MCDwarf.h"
 #include "llvm/MC/MCLinkerOptimizationHint.h"
 #include "llvm/MC/MCSymbol.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/SMLoc.h"
 #include "llvm/Support/VersionTuple.h"
 #include <algorithm>
diff --git a/llvm/include/llvm/MC/MCCodeEmitter.h \
b/llvm/include/llvm/MC/MCCodeEmitter.h index a86b98c145fc84e..573f171b14bd733 100644
--- a/llvm/include/llvm/MC/MCCodeEmitter.h
+++ b/llvm/include/llvm/MC/MCCodeEmitter.h
@@ -9,6 +9,8 @@
 #ifndef LLVM_MC_MCCODEEMITTER_H
 #define LLVM_MC_MCCODEEMITTER_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 
 class MCFixup;
diff --git a/llvm/include/llvm/MC/MCCodeView.h b/llvm/include/llvm/MC/MCCodeView.h
index 3e997b1be3b8bdf..65bfcaa10503732 100644
--- a/llvm/include/llvm/MC/MCCodeView.h
+++ b/llvm/include/llvm/MC/MCCodeView.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <map>
 #include <vector>
 
diff --git a/llvm/include/llvm/MC/MCDXContainerStreamer.h \
b/llvm/include/llvm/MC/MCDXContainerStreamer.h index 91d4ea9bc10654c..a2a9dee06a74c15 \
                100644
--- a/llvm/include/llvm/MC/MCDXContainerStreamer.h
+++ b/llvm/include/llvm/MC/MCDXContainerStreamer.h
@@ -20,6 +20,7 @@
 #include "llvm/MC/MCCodeEmitter.h"
 #include "llvm/MC/MCObjectStreamer.h"
 #include "llvm/MC/MCObjectWriter.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class MCInst;
diff --git a/llvm/include/llvm/MC/MCDXContainerWriter.h \
b/llvm/include/llvm/MC/MCDXContainerWriter.h index 8e78b1f48e16754..7c1ea6c8f317421 \
                100644
--- a/llvm/include/llvm/MC/MCDXContainerWriter.h
+++ b/llvm/include/llvm/MC/MCDXContainerWriter.h
@@ -10,6 +10,7 @@
 #define LLVM_MC_MCDXCONTAINERWRITER_H
 
 #include "llvm/MC/MCObjectWriter.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/TargetParser/Triple.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h \
b/llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h index \
                865d81f70073933..79d58d41d0ca946 100644
--- a/llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h
+++ b/llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/BinaryFormat/XCOFF.h"
 #include "llvm/MC/MCDisassembler/MCSymbolizer.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <memory>
 #include <vector>
diff --git a/llvm/include/llvm/MC/MCDisassembler/MCExternalSymbolizer.h \
b/llvm/include/llvm/MC/MCDisassembler/MCExternalSymbolizer.h index \
                8af3bb2296ec134..4935d36dd72b8cf 100644
--- a/llvm/include/llvm/MC/MCDisassembler/MCExternalSymbolizer.h
+++ b/llvm/include/llvm/MC/MCDisassembler/MCExternalSymbolizer.h
@@ -17,6 +17,7 @@
 
 #include "llvm-c/DisassemblerTypes.h"
 #include "llvm/MC/MCDisassembler/MCSymbolizer.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 
 namespace llvm {
diff --git a/llvm/include/llvm/MC/MCDisassembler/MCRelocationInfo.h \
b/llvm/include/llvm/MC/MCDisassembler/MCRelocationInfo.h index \
                efc59da1933539f..e85b47465009001 100644
--- a/llvm/include/llvm/MC/MCDisassembler/MCRelocationInfo.h
+++ b/llvm/include/llvm/MC/MCDisassembler/MCRelocationInfo.h
@@ -15,6 +15,8 @@
 #ifndef LLVM_MC_MCDISASSEMBLER_MCRELOCATIONINFO_H
 #define LLVM_MC_MCDISASSEMBLER_MCRELOCATIONINFO_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 
 class MCContext;
diff --git a/llvm/include/llvm/MC/MCDisassembler/MCSymbolizer.h \
b/llvm/include/llvm/MC/MCDisassembler/MCSymbolizer.h index \
                1efb63f1a14256e..3acfda5672e322d 100644
--- a/llvm/include/llvm/MC/MCDisassembler/MCSymbolizer.h
+++ b/llvm/include/llvm/MC/MCDisassembler/MCSymbolizer.h
@@ -17,6 +17,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/MC/MCDisassembler/MCRelocationInfo.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <memory>
 #include <utility>
diff --git a/llvm/include/llvm/MC/MCDwarf.h b/llvm/include/llvm/MC/MCDwarf.h
index 715714f8e55dbb5..1611cc93be08774 100644
--- a/llvm/include/llvm/MC/MCDwarf.h
+++ b/llvm/include/llvm/MC/MCDwarf.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/MC/StringTableBuilder.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MD5.h"
 #include "llvm/Support/SMLoc.h"
diff --git a/llvm/include/llvm/MC/MCELFObjectWriter.h \
b/llvm/include/llvm/MC/MCELFObjectWriter.h index aca77f5f2687a30..fde146ec04f57c9 \
                100644
--- a/llvm/include/llvm/MC/MCELFObjectWriter.h
+++ b/llvm/include/llvm/MC/MCELFObjectWriter.h
@@ -13,6 +13,7 @@
 #include "llvm/MC/MCObjectWriter.h"
 #include "llvm/MC/MCSectionELF.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 #include "llvm/TargetParser/Triple.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/MC/MCELFStreamer.h \
b/llvm/include/llvm/MC/MCELFStreamer.h index 1309b17bff9c14b..3b08190458968b7 100644
--- a/llvm/include/llvm/MC/MCELFStreamer.h
+++ b/llvm/include/llvm/MC/MCELFStreamer.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/MC/MCDirectives.h"
 #include "llvm/MC/MCObjectStreamer.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/MC/MCExpr.h b/llvm/include/llvm/MC/MCExpr.h
index 5bc5e04f79ffc37..eb68426f5bcedc8 100644
--- a/llvm/include/llvm/MC/MCExpr.h
+++ b/llvm/include/llvm/MC/MCExpr.h
@@ -10,6 +10,7 @@
 #define LLVM_MC_MCEXPR_H
 
 #include "llvm/ADT/DenseMap.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/SMLoc.h"
 #include <cstdint>
 
diff --git a/llvm/include/llvm/MC/MCFixup.h b/llvm/include/llvm/MC/MCFixup.h
index 069ca058310fccf..1de078c803b74fa 100644
--- a/llvm/include/llvm/MC/MCFixup.h
+++ b/llvm/include/llvm/MC/MCFixup.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_MC_MCFIXUP_H
 #define LLVM_MC_MCFIXUP_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/SMLoc.h"
diff --git a/llvm/include/llvm/MC/MCFixupKindInfo.h \
b/llvm/include/llvm/MC/MCFixupKindInfo.h index ecf85fa5693186f..a4d9a3b297fd856 \
                100644
--- a/llvm/include/llvm/MC/MCFixupKindInfo.h
+++ b/llvm/include/llvm/MC/MCFixupKindInfo.h
@@ -9,6 +9,8 @@
 #ifndef LLVM_MC_MCFIXUPKINDINFO_H
 #define LLVM_MC_MCFIXUPKINDINFO_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 
 /// Target independent information on a fixup kind.
diff --git a/llvm/include/llvm/MC/MCFragment.h b/llvm/include/llvm/MC/MCFragment.h
index 7be4792a4521983..bbad3c729e66706 100644
--- a/llvm/include/llvm/MC/MCFragment.h
+++ b/llvm/include/llvm/MC/MCFragment.h
@@ -17,6 +17,7 @@
 #include "llvm/MC/MCFixup.h"
 #include "llvm/MC/MCInst.h"
 #include "llvm/Support/Alignment.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/SMLoc.h"
 #include <cstdint>
 #include <utility>
diff --git a/llvm/include/llvm/MC/MCInst.h b/llvm/include/llvm/MC/MCInst.h
index 2bc310852fe50d6..a615c5f7909ad5a 100644
--- a/llvm/include/llvm/MC/MCInst.h
+++ b/llvm/include/llvm/MC/MCInst.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/bit.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/SMLoc.h"
 #include <cassert>
 #include <cstddef>
diff --git a/llvm/include/llvm/MC/MCInstBuilder.h \
b/llvm/include/llvm/MC/MCInstBuilder.h index 6e5e9dd69018f4f..c82a598454ab063 100644
--- a/llvm/include/llvm/MC/MCInstBuilder.h
+++ b/llvm/include/llvm/MC/MCInstBuilder.h
@@ -15,6 +15,7 @@
 #define LLVM_MC_MCINSTBUILDER_H
 
 #include "llvm/MC/MCInst.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/MC/MCInstPrinter.h \
b/llvm/include/llvm/MC/MCInstPrinter.h index 5e33e274c0b314c..3b45dd44ff70a77 100644
--- a/llvm/include/llvm/MC/MCInstPrinter.h
+++ b/llvm/include/llvm/MC/MCInstPrinter.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_MC_MCINSTPRINTER_H
 #define LLVM_MC_MCINSTPRINTER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Format.h"
 #include <cstdint>
 
diff --git a/llvm/include/llvm/MC/MCInstrAnalysis.h \
b/llvm/include/llvm/MC/MCInstrAnalysis.h index aca0f4daeeee89d..126b94382056c20 \
                100644
--- a/llvm/include/llvm/MC/MCInstrAnalysis.h
+++ b/llvm/include/llvm/MC/MCInstrAnalysis.h
@@ -18,6 +18,7 @@
 #include "llvm/MC/MCInst.h"
 #include "llvm/MC/MCInstrDesc.h"
 #include "llvm/MC/MCInstrInfo.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <vector>
 
diff --git a/llvm/include/llvm/MC/MCInstrDesc.h b/llvm/include/llvm/MC/MCInstrDesc.h
index 0f406cb719502c9..971b97c33c48603 100644
--- a/llvm/include/llvm/MC/MCInstrDesc.h
+++ b/llvm/include/llvm/MC/MCInstrDesc.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/iterator_range.h"
 #include "llvm/MC/MCRegister.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class MCRegisterInfo;
diff --git a/llvm/include/llvm/MC/MCInstrInfo.h b/llvm/include/llvm/MC/MCInstrInfo.h
index 35ec1b797051656..e4cfcc0ae01a318 100644
--- a/llvm/include/llvm/MC/MCInstrInfo.h
+++ b/llvm/include/llvm/MC/MCInstrInfo.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/StringRef.h"
 #include "llvm/MC/MCInstrDesc.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 
 namespace llvm {
diff --git a/llvm/include/llvm/MC/MCInstrItineraries.h \
b/llvm/include/llvm/MC/MCInstrItineraries.h index 652922feddc3384..36ddcdf2af66b71 \
                100644
--- a/llvm/include/llvm/MC/MCInstrItineraries.h
+++ b/llvm/include/llvm/MC/MCInstrItineraries.h
@@ -16,6 +16,7 @@
 #define LLVM_MC_MCINSTRITINERARIES_H
 
 #include "llvm/MC/MCSchedule.h"
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 
 namespace llvm {
diff --git a/llvm/include/llvm/MC/MCLabel.h b/llvm/include/llvm/MC/MCLabel.h
index 0b8afac8f7548d8..21d781bb2fde2bc 100644
--- a/llvm/include/llvm/MC/MCLabel.h
+++ b/llvm/include/llvm/MC/MCLabel.h
@@ -13,6 +13,8 @@
 #ifndef LLVM_MC_MCLABEL_H
 #define LLVM_MC_MCLABEL_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 
 class raw_ostream;
diff --git a/llvm/include/llvm/MC/MCLinkerOptimizationHint.h \
b/llvm/include/llvm/MC/MCLinkerOptimizationHint.h index \
                b91fbc62aa75691..b994882d781ed0a 100644
--- a/llvm/include/llvm/MC/MCLinkerOptimizationHint.h
+++ b/llvm/include/llvm/MC/MCLinkerOptimizationHint.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/StringSwitch.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 
diff --git a/llvm/include/llvm/MC/MCMachObjectWriter.h \
b/llvm/include/llvm/MC/MCMachObjectWriter.h index 05d816671b1a405..6244421bdd3d955 \
                100644
--- a/llvm/include/llvm/MC/MCMachObjectWriter.h
+++ b/llvm/include/llvm/MC/MCMachObjectWriter.h
@@ -16,6 +16,7 @@
 #include "llvm/MC/MCObjectWriter.h"
 #include "llvm/MC/MCSection.h"
 #include "llvm/MC/StringTableBuilder.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/EndianStream.h"
 #include <cstdint>
 #include <memory>
diff --git a/llvm/include/llvm/MC/MCObjectFileInfo.h \
b/llvm/include/llvm/MC/MCObjectFileInfo.h index 54f696cb795fbc1..3ed0693f7d28788 \
                100644
--- a/llvm/include/llvm/MC/MCObjectFileInfo.h
+++ b/llvm/include/llvm/MC/MCObjectFileInfo.h
@@ -15,6 +15,7 @@
 
 #include "llvm/BinaryFormat/Swift.h"
 #include "llvm/MC/MCSection.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/VersionTuple.h"
 #include "llvm/TargetParser/Triple.h"
 
diff --git a/llvm/include/llvm/MC/MCObjectStreamer.h \
b/llvm/include/llvm/MC/MCObjectStreamer.h index 5e5b4b315017095..f0c5ee2753a0009 \
                100644
--- a/llvm/include/llvm/MC/MCObjectStreamer.h
+++ b/llvm/include/llvm/MC/MCObjectStreamer.h
@@ -15,6 +15,7 @@
 #include "llvm/MC/MCFragment.h"
 #include "llvm/MC/MCSection.h"
 #include "llvm/MC/MCStreamer.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class MCContext;
diff --git a/llvm/include/llvm/MC/MCObjectWriter.h \
b/llvm/include/llvm/MC/MCObjectWriter.h index 2a43266144b4d84..5bf6631c5a8254e 100644
--- a/llvm/include/llvm/MC/MCObjectWriter.h
+++ b/llvm/include/llvm/MC/MCObjectWriter.h
@@ -10,6 +10,7 @@
 #define LLVM_MC_MCOBJECTWRITER_H
 
 #include "llvm/MC/MCSymbol.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/TargetParser/Triple.h"
 #include <cstdint>
 
diff --git a/llvm/include/llvm/MC/MCParser/AsmCond.h \
b/llvm/include/llvm/MC/MCParser/AsmCond.h index 44edd2b758ffe41..6b8c8ae4b508dd7 \
                100644
--- a/llvm/include/llvm/MC/MCParser/AsmCond.h
+++ b/llvm/include/llvm/MC/MCParser/AsmCond.h
@@ -9,6 +9,8 @@
 #ifndef LLVM_MC_MCPARSER_ASMCOND_H
 #define LLVM_MC_MCPARSER_ASMCOND_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 
 /// AsmCond - Class to support conditional assembly
diff --git a/llvm/include/llvm/MC/MCParser/AsmLexer.h \
b/llvm/include/llvm/MC/MCParser/AsmLexer.h index 735b0c114f2aae8..0a0c59f6dbfdc79 \
                100644
--- a/llvm/include/llvm/MC/MCParser/AsmLexer.h
+++ b/llvm/include/llvm/MC/MCParser/AsmLexer.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/StringRef.h"
 #include "llvm/MC/MCParser/MCAsmLexer.h"
+#include "llvm/Support/Compiler.h"
 #include <string>
 
 namespace llvm {
diff --git a/llvm/include/llvm/MC/MCParser/MCAsmLexer.h \
b/llvm/include/llvm/MC/MCParser/MCAsmLexer.h index 9affb1f980bb071..3ea594ed3bfdaa4 \
                100644
--- a/llvm/include/llvm/MC/MCParser/MCAsmLexer.h
+++ b/llvm/include/llvm/MC/MCParser/MCAsmLexer.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/MC/MCAsmMacro.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstddef>
 #include <string>
diff --git a/llvm/include/llvm/MC/MCParser/MCAsmParser.h \
b/llvm/include/llvm/MC/MCParser/MCAsmParser.h index faa72d5f3144c43..1c36cd17efe447e \
                100644
--- a/llvm/include/llvm/MC/MCParser/MCAsmParser.h
+++ b/llvm/include/llvm/MC/MCParser/MCAsmParser.h
@@ -15,6 +15,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/Twine.h"
 #include "llvm/MC/MCAsmMacro.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/SMLoc.h"
 #include <cstdint>
 #include <string>
diff --git a/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h \
b/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h index \
                e596a7195447dd5..ac1cf673e4ed5a2 100644
--- a/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h
+++ b/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/STLFunctionalExtras.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/MC/MCParser/MCAsmParser.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/SMLoc.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/MC/MCParser/MCAsmParserUtils.h \
b/llvm/include/llvm/MC/MCParser/MCAsmParserUtils.h index \
                d692da7402fefef..603c740d44300e7 100644
--- a/llvm/include/llvm/MC/MCParser/MCAsmParserUtils.h
+++ b/llvm/include/llvm/MC/MCParser/MCAsmParserUtils.h
@@ -9,6 +9,8 @@
 #ifndef LLVM_MC_MCPARSER_MCASMPARSERUTILS_H
 #define LLVM_MC_MCPARSER_MCASMPARSERUTILS_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 
 class MCAsmParser;
diff --git a/llvm/include/llvm/MC/MCParser/MCParsedAsmOperand.h \
b/llvm/include/llvm/MC/MCParser/MCParsedAsmOperand.h index \
                0c9668904e8261b..59583b16b7c1afd 100644
--- a/llvm/include/llvm/MC/MCParser/MCParsedAsmOperand.h
+++ b/llvm/include/llvm/MC/MCParser/MCParsedAsmOperand.h
@@ -10,6 +10,7 @@
 #define LLVM_MC_MCPARSER_MCPARSEDASMOPERAND_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/SMLoc.h"
 #include <string>
 
diff --git a/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h \
b/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h index \
                1d87f0131efcb06..3eecace2f7e2d73 100644
--- a/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h
+++ b/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h
@@ -14,6 +14,7 @@
 #include "llvm/MC/MCParser/MCAsmParserExtension.h"
 #include "llvm/MC/MCParser/MCParsedAsmOperand.h"
 #include "llvm/MC/MCTargetOptions.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/SMLoc.h"
 #include "llvm/TargetParser/SubtargetFeature.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/MC/MCPseudoProbe.h \
b/llvm/include/llvm/MC/MCPseudoProbe.h index 4904cb4ca545676..d3625723c5df307 100644
--- a/llvm/include/llvm/MC/MCPseudoProbe.h
+++ b/llvm/include/llvm/MC/MCPseudoProbe.h
@@ -58,6 +58,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/IR/PseudoProbe.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorOr.h"
 #include <list>
 #include <map>
diff --git a/llvm/include/llvm/MC/MCRegister.h b/llvm/include/llvm/MC/MCRegister.h
index 530c1870abd6adb..82f5477e510d0af 100644
--- a/llvm/include/llvm/MC/MCRegister.h
+++ b/llvm/include/llvm/MC/MCRegister.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/DenseMapInfo.h"
 #include "llvm/ADT/Hashing.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <limits>
 
diff --git a/llvm/include/llvm/MC/MCRegisterInfo.h \
b/llvm/include/llvm/MC/MCRegisterInfo.h index ede01d624924622..3afdd70e16b1d06 100644
--- a/llvm/include/llvm/MC/MCRegisterInfo.h
+++ b/llvm/include/llvm/MC/MCRegisterInfo.h
@@ -20,6 +20,7 @@
 #include "llvm/ADT/iterator_range.h"
 #include "llvm/MC/LaneBitmask.h"
 #include "llvm/MC/MCRegister.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 #include <iterator>
diff --git a/llvm/include/llvm/MC/MCSPIRVObjectWriter.h \
b/llvm/include/llvm/MC/MCSPIRVObjectWriter.h index a8baf96b83842ba..8c8c1b43f8da0cd \
                100644
--- a/llvm/include/llvm/MC/MCSPIRVObjectWriter.h
+++ b/llvm/include/llvm/MC/MCSPIRVObjectWriter.h
@@ -10,6 +10,7 @@
 #define LLVM_MC_MCSPIRVOBJECTWRITER_H
 
 #include "llvm/MC/MCObjectWriter.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 #include <memory>
 
diff --git a/llvm/include/llvm/MC/MCSPIRVStreamer.h \
b/llvm/include/llvm/MC/MCSPIRVStreamer.h index b03ae5d4599c963..43cfdbb28acfb47 \
                100644
--- a/llvm/include/llvm/MC/MCSPIRVStreamer.h
+++ b/llvm/include/llvm/MC/MCSPIRVStreamer.h
@@ -17,6 +17,7 @@
 #include "llvm/MC/MCCodeEmitter.h"
 #include "llvm/MC/MCObjectStreamer.h"
 #include "llvm/MC/MCObjectWriter.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class MCInst;
diff --git a/llvm/include/llvm/MC/MCSchedule.h b/llvm/include/llvm/MC/MCSchedule.h
index e6cf27ce2d6513f..06f8e3fd24865b2 100644
--- a/llvm/include/llvm/MC/MCSchedule.h
+++ b/llvm/include/llvm/MC/MCSchedule.h
@@ -15,6 +15,7 @@
 #define LLVM_MC_MCSCHEDULE_H
 
 #include "llvm/Config/llvm-config.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 #include <cassert>
 
diff --git a/llvm/include/llvm/MC/MCSection.h b/llvm/include/llvm/MC/MCSection.h
index 90bc48ec185ca4a..89fd6ba43277182 100644
--- a/llvm/include/llvm/MC/MCSection.h
+++ b/llvm/include/llvm/MC/MCSection.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/ilist.h"
 #include "llvm/MC/MCFragment.h"
 #include "llvm/MC/SectionKind.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Alignment.h"
 #include <cassert>
 #include <utility>
diff --git a/llvm/include/llvm/MC/MCSectionCOFF.h \
b/llvm/include/llvm/MC/MCSectionCOFF.h index 373863e21ff02eb..c84747a2deffac3 100644
--- a/llvm/include/llvm/MC/MCSectionCOFF.h
+++ b/llvm/include/llvm/MC/MCSectionCOFF.h
@@ -16,6 +16,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/MC/MCSection.h"
 #include "llvm/MC/SectionKind.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 
 namespace llvm {
diff --git a/llvm/include/llvm/MC/MCSectionDXContainer.h \
b/llvm/include/llvm/MC/MCSectionDXContainer.h index 014684a93529503..7fdd3282eb0e3c7 \
                100644
--- a/llvm/include/llvm/MC/MCSectionDXContainer.h
+++ b/llvm/include/llvm/MC/MCSectionDXContainer.h
@@ -15,6 +15,7 @@
 
 #include "llvm/MC/MCSection.h"
 #include "llvm/MC/SectionKind.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/MC/MCSectionELF.h \
b/llvm/include/llvm/MC/MCSectionELF.h index 3b5239394493cea..152e2bcff8ff43c 100644
--- a/llvm/include/llvm/MC/MCSectionELF.h
+++ b/llvm/include/llvm/MC/MCSectionELF.h
@@ -18,6 +18,7 @@
 #include "llvm/MC/MCSection.h"
 #include "llvm/MC/MCSymbolELF.h"
 #include "llvm/MC/SectionKind.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/MC/MCSectionGOFF.h \
b/llvm/include/llvm/MC/MCSectionGOFF.h index d866329461ceae8..1f98199eea5a7f8 100644
--- a/llvm/include/llvm/MC/MCSectionGOFF.h
+++ b/llvm/include/llvm/MC/MCSectionGOFF.h
@@ -17,6 +17,7 @@
 
 #include "llvm/BinaryFormat/GOFF.h"
 #include "llvm/MC/MCSection.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/MC/MCSectionMachO.h \
b/llvm/include/llvm/MC/MCSectionMachO.h index fdf1773d400253b..b9ab4422e8d1d10 100644
--- a/llvm/include/llvm/MC/MCSectionMachO.h
+++ b/llvm/include/llvm/MC/MCSectionMachO.h
@@ -16,6 +16,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/BinaryFormat/MachO.h"
 #include "llvm/MC/MCSection.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/MC/MCSectionSPIRV.h \
b/llvm/include/llvm/MC/MCSectionSPIRV.h index 6534599d2091c74..ba9a16cd32a3170 100644
--- a/llvm/include/llvm/MC/MCSectionSPIRV.h
+++ b/llvm/include/llvm/MC/MCSectionSPIRV.h
@@ -15,6 +15,7 @@
 
 #include "llvm/MC/MCSection.h"
 #include "llvm/MC/SectionKind.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/MC/MCSectionWasm.h \
b/llvm/include/llvm/MC/MCSectionWasm.h index 579f92a750567ed..4c9b5d8886aa306 100644
--- a/llvm/include/llvm/MC/MCSectionWasm.h
+++ b/llvm/include/llvm/MC/MCSectionWasm.h
@@ -14,6 +14,7 @@
 #define LLVM_MC_MCSECTIONWASM_H
 
 #include "llvm/MC/MCSection.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/MC/MCSectionXCOFF.h \
b/llvm/include/llvm/MC/MCSectionXCOFF.h index 68832f5daad5871..65092b14ab3585a 100644
--- a/llvm/include/llvm/MC/MCSectionXCOFF.h
+++ b/llvm/include/llvm/MC/MCSectionXCOFF.h
@@ -16,6 +16,7 @@
 #include "llvm/BinaryFormat/XCOFF.h"
 #include "llvm/MC/MCSection.h"
 #include "llvm/MC/MCSymbolXCOFF.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/MC/MCStreamer.h b/llvm/include/llvm/MC/MCStreamer.h
index dcd84a6efda0e88..09b6fd664af75ad 100644
--- a/llvm/include/llvm/MC/MCStreamer.h
+++ b/llvm/include/llvm/MC/MCStreamer.h
@@ -22,6 +22,7 @@
 #include "llvm/MC/MCLinkerOptimizationHint.h"
 #include "llvm/MC/MCPseudoProbe.h"
 #include "llvm/MC/MCWinEH.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MD5.h"
 #include "llvm/Support/SMLoc.h"
diff --git a/llvm/include/llvm/MC/MCSubtargetInfo.h \
b/llvm/include/llvm/MC/MCSubtargetInfo.h index c1533ac8d0059f5..ab45d1873fb1811 \
                100644
--- a/llvm/include/llvm/MC/MCSubtargetInfo.h
+++ b/llvm/include/llvm/MC/MCSubtargetInfo.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/MC/MCInstrItineraries.h"
 #include "llvm/MC/MCSchedule.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/TargetParser/SubtargetFeature.h"
 #include "llvm/TargetParser/Triple.h"
 #include <cassert>
diff --git a/llvm/include/llvm/MC/MCSymbol.h b/llvm/include/llvm/MC/MCSymbol.h
index d0d51f32e96779d..a50ce48bf330dca 100644
--- a/llvm/include/llvm/MC/MCSymbol.h
+++ b/llvm/include/llvm/MC/MCSymbol.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/MC/MCExpr.h"
 #include "llvm/MC/MCFragment.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/MathExtras.h"
 #include <cassert>
diff --git a/llvm/include/llvm/MC/MCSymbolCOFF.h \
b/llvm/include/llvm/MC/MCSymbolCOFF.h index 7983fff7e6afdaa..59ec933463b3629 100644
--- a/llvm/include/llvm/MC/MCSymbolCOFF.h
+++ b/llvm/include/llvm/MC/MCSymbolCOFF.h
@@ -11,6 +11,7 @@
 
 #include "llvm/BinaryFormat/COFF.h"
 #include "llvm/MC/MCSymbol.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/MC/MCSymbolELF.h b/llvm/include/llvm/MC/MCSymbolELF.h
index 9fc49ea322ce21a..ef496b2feafc92d 100644
--- a/llvm/include/llvm/MC/MCSymbolELF.h
+++ b/llvm/include/llvm/MC/MCSymbolELF.h
@@ -9,6 +9,7 @@
 #define LLVM_MC_MCSYMBOLELF_H
 
 #include "llvm/MC/MCSymbol.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class MCSymbolELF : public MCSymbol {
diff --git a/llvm/include/llvm/MC/MCSymbolGOFF.h \
b/llvm/include/llvm/MC/MCSymbolGOFF.h index cc4e2bbe246e2de..6cbc7080a99a3d2 100644
--- a/llvm/include/llvm/MC/MCSymbolGOFF.h
+++ b/llvm/include/llvm/MC/MCSymbolGOFF.h
@@ -14,6 +14,7 @@
 #define LLVM_MC_MCSYMBOLGOFF_H
 
 #include "llvm/MC/MCSymbol.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/MC/MCSymbolMachO.h \
b/llvm/include/llvm/MC/MCSymbolMachO.h index bce0f82da62cd67..14ac6faffcf14dc 100644
--- a/llvm/include/llvm/MC/MCSymbolMachO.h
+++ b/llvm/include/llvm/MC/MCSymbolMachO.h
@@ -10,6 +10,7 @@
 
 #include "llvm/ADT/Twine.h"
 #include "llvm/MC/MCSymbol.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class MCSymbolMachO : public MCSymbol {
diff --git a/llvm/include/llvm/MC/MCSymbolWasm.h \
b/llvm/include/llvm/MC/MCSymbolWasm.h index c67bd64e7cbdfda..3f88aaf19590f4c 100644
--- a/llvm/include/llvm/MC/MCSymbolWasm.h
+++ b/llvm/include/llvm/MC/MCSymbolWasm.h
@@ -10,6 +10,7 @@
 
 #include "llvm/BinaryFormat/Wasm.h"
 #include "llvm/MC/MCSymbol.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/MC/MCSymbolXCOFF.h \
b/llvm/include/llvm/MC/MCSymbolXCOFF.h index af5759f72618d5b..502e6e4c8c804c1 100644
--- a/llvm/include/llvm/MC/MCSymbolXCOFF.h
+++ b/llvm/include/llvm/MC/MCSymbolXCOFF.h
@@ -11,6 +11,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/BinaryFormat/XCOFF.h"
 #include "llvm/MC/MCSymbol.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/MC/MCTargetOptions.h \
b/llvm/include/llvm/MC/MCTargetOptions.h index 9fc1e07d085ebaa..8556502ec6dc0f4 \
                100644
--- a/llvm/include/llvm/MC/MCTargetOptions.h
+++ b/llvm/include/llvm/MC/MCTargetOptions.h
@@ -10,6 +10,7 @@
 #define LLVM_MC_MCTARGETOPTIONS_H
 
 #include "llvm/ADT/ArrayRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Compression.h"
 #include <string>
 #include <vector>
diff --git a/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h \
b/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h index \
                7f6ee6c8be224ab..fef63b27cf11f47 100644
--- a/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
+++ b/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_MC_MCTARGETOPTIONSCOMMANDFLAGS_H
 #define LLVM_MC_MCTARGETOPTIONSCOMMANDFLAGS_H
 
+#include "llvm/Support/Compiler.h"
 #include <optional>
 #include <string>
 
diff --git a/llvm/include/llvm/MC/MCValue.h b/llvm/include/llvm/MC/MCValue.h
index 37265d72c9df93b..927514b013da948 100644
--- a/llvm/include/llvm/MC/MCValue.h
+++ b/llvm/include/llvm/MC/MCValue.h
@@ -14,6 +14,7 @@
 #define LLVM_MC_MCVALUE_H
 
 #include "llvm/MC/MCExpr.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/MC/MCWasmObjectWriter.h \
b/llvm/include/llvm/MC/MCWasmObjectWriter.h index 3d5b09407507a9c..22cfd1b74bb38c2 \
                100644
--- a/llvm/include/llvm/MC/MCWasmObjectWriter.h
+++ b/llvm/include/llvm/MC/MCWasmObjectWriter.h
@@ -10,6 +10,7 @@
 #define LLVM_MC_MCWASMOBJECTWRITER_H
 
 #include "llvm/MC/MCObjectWriter.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 
 namespace llvm {
diff --git a/llvm/include/llvm/MC/MCWasmStreamer.h \
b/llvm/include/llvm/MC/MCWasmStreamer.h index f58405214a80a3c..e9bd97046ca4576 100644
--- a/llvm/include/llvm/MC/MCWasmStreamer.h
+++ b/llvm/include/llvm/MC/MCWasmStreamer.h
@@ -14,6 +14,7 @@
 #include "llvm/MC/MCDirectives.h"
 #include "llvm/MC/MCObjectStreamer.h"
 #include "llvm/MC/MCObjectWriter.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/MC/MCWin64EH.h b/llvm/include/llvm/MC/MCWin64EH.h
index 622a666b78dd233..1a0858c3a8e4bae 100644
--- a/llvm/include/llvm/MC/MCWin64EH.h
+++ b/llvm/include/llvm/MC/MCWin64EH.h
@@ -15,6 +15,7 @@
 #define LLVM_MC_MCWIN64EH_H
 
 #include "llvm/MC/MCWinEH.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Win64EH.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/MC/MCWinCOFFObjectWriter.h \
b/llvm/include/llvm/MC/MCWinCOFFObjectWriter.h index 307800e73c687c2..3f4d1b23331f684 \
                100644
--- a/llvm/include/llvm/MC/MCWinCOFFObjectWriter.h
+++ b/llvm/include/llvm/MC/MCWinCOFFObjectWriter.h
@@ -10,6 +10,7 @@
 #define LLVM_MC_MCWINCOFFOBJECTWRITER_H
 
 #include "llvm/MC/MCObjectWriter.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 
 namespace llvm {
diff --git a/llvm/include/llvm/MC/MCWinCOFFStreamer.h \
b/llvm/include/llvm/MC/MCWinCOFFStreamer.h index 52563f120fdb4b6..b036d9bf51e2f41 \
                100644
--- a/llvm/include/llvm/MC/MCWinCOFFStreamer.h
+++ b/llvm/include/llvm/MC/MCWinCOFFStreamer.h
@@ -11,6 +11,7 @@
 
 #include "llvm/MC/MCDirectives.h"
 #include "llvm/MC/MCObjectStreamer.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/MC/MCWinEH.h b/llvm/include/llvm/MC/MCWinEH.h
index fcce2dcd54837c5..ae8a77cf0f95ca4 100644
--- a/llvm/include/llvm/MC/MCWinEH.h
+++ b/llvm/include/llvm/MC/MCWinEH.h
@@ -10,6 +10,7 @@
 #define LLVM_MC_MCWINEH_H
 
 #include "llvm/ADT/MapVector.h"
+#include "llvm/Support/Compiler.h"
 #include <vector>
 
 namespace llvm {
diff --git a/llvm/include/llvm/MC/MCXCOFFObjectWriter.h \
b/llvm/include/llvm/MC/MCXCOFFObjectWriter.h index faad2ceb26910d9..3a4f49ee334e02a \
                100644
--- a/llvm/include/llvm/MC/MCXCOFFObjectWriter.h
+++ b/llvm/include/llvm/MC/MCXCOFFObjectWriter.h
@@ -10,6 +10,7 @@
 #define LLVM_MC_MCXCOFFOBJECTWRITER_H
 
 #include "llvm/MC/MCObjectWriter.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/MC/MCXCOFFStreamer.h \
b/llvm/include/llvm/MC/MCXCOFFStreamer.h index a3db636e5b3a933..f358faec7f4bcd7 \
                100644
--- a/llvm/include/llvm/MC/MCXCOFFStreamer.h
+++ b/llvm/include/llvm/MC/MCXCOFFStreamer.h
@@ -10,6 +10,7 @@
 #define LLVM_MC_MCXCOFFSTREAMER_H
 
 #include "llvm/MC/MCObjectStreamer.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/MC/MachineLocation.h \
b/llvm/include/llvm/MC/MachineLocation.h index 5872540e6104dea..5b9d26ddfdc748f \
                100644
--- a/llvm/include/llvm/MC/MachineLocation.h
+++ b/llvm/include/llvm/MC/MachineLocation.h
@@ -16,6 +16,7 @@
 
 #include <cstdint>
 #include <cassert>
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/MC/SectionKind.h b/llvm/include/llvm/MC/SectionKind.h
index 61e400fe9edeea4..14d11e0051a87e4 100644
--- a/llvm/include/llvm/MC/SectionKind.h
+++ b/llvm/include/llvm/MC/SectionKind.h
@@ -9,6 +9,8 @@
 #ifndef LLVM_MC_SECTIONKIND_H
 #define LLVM_MC_SECTIONKIND_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 
 /// SectionKind - This is a simple POD value that classifies the properties of
diff --git a/llvm/include/llvm/MC/StringTableBuilder.h \
b/llvm/include/llvm/MC/StringTableBuilder.h index d0d5aaa0373893f..718f61d0c531b65 \
                100644
--- a/llvm/include/llvm/MC/StringTableBuilder.h
+++ b/llvm/include/llvm/MC/StringTableBuilder.h
@@ -13,6 +13,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Support/Alignment.h"
+#include "llvm/Support/Compiler.h"
 #include <cstddef>
 #include <cstdint>
 
diff --git a/llvm/include/llvm/MC/TargetRegistry.h \
b/llvm/include/llvm/MC/TargetRegistry.h index 3fa150fc1349cee..ed9be225d743acb 100644
--- a/llvm/include/llvm/MC/TargetRegistry.h
+++ b/llvm/include/llvm/MC/TargetRegistry.h
@@ -23,6 +23,7 @@
 #include "llvm/ADT/iterator_range.h"
 #include "llvm/MC/MCObjectFileInfo.h"
 #include "llvm/Support/CodeGen.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/FormattedStream.h"
 #include "llvm/TargetParser/Triple.h"
diff --git a/llvm/include/llvm/MCA/CodeEmitter.h \
b/llvm/include/llvm/MCA/CodeEmitter.h index 431ceea2706486b..3c8ecaf2c1070a9 100644
--- a/llvm/include/llvm/MCA/CodeEmitter.h
+++ b/llvm/include/llvm/MCA/CodeEmitter.h
@@ -23,6 +23,7 @@
 #include "llvm/MC/MCCodeEmitter.h"
 #include "llvm/MC/MCInst.h"
 #include "llvm/MC/MCSubtargetInfo.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace mca {
diff --git a/llvm/include/llvm/MCA/Context.h b/llvm/include/llvm/MCA/Context.h
index 0abcfd7ce9f05e4..1c9573a2ffa0acf 100644
--- a/llvm/include/llvm/MCA/Context.h
+++ b/llvm/include/llvm/MCA/Context.h
@@ -23,6 +23,7 @@
 #include "llvm/MCA/HardwareUnits/HardwareUnit.h"
 #include "llvm/MCA/Pipeline.h"
 #include "llvm/MCA/SourceMgr.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 
 namespace llvm {
diff --git a/llvm/include/llvm/MCA/CustomBehaviour.h \
b/llvm/include/llvm/MCA/CustomBehaviour.h index b3774894517ab45..77bff2f27db46c5 \
                100644
--- a/llvm/include/llvm/MCA/CustomBehaviour.h
+++ b/llvm/include/llvm/MCA/CustomBehaviour.h
@@ -24,6 +24,7 @@
 #include "llvm/MC/MCSubtargetInfo.h"
 #include "llvm/MCA/SourceMgr.h"
 #include "llvm/MCA/View.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace mca {
diff --git a/llvm/include/llvm/MCA/HWEventListener.h \
b/llvm/include/llvm/MCA/HWEventListener.h index 4a7d0df6b18a93a..a0e422e2f7a88b2 \
                100644
--- a/llvm/include/llvm/MCA/HWEventListener.h
+++ b/llvm/include/llvm/MCA/HWEventListener.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/MCA/Instruction.h"
 #include "llvm/MCA/Support.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace mca {
diff --git a/llvm/include/llvm/MCA/HardwareUnits/HardwareUnit.h \
b/llvm/include/llvm/MCA/HardwareUnits/HardwareUnit.h index \
                85350e4eb7f076f..20533500c4b794f 100644
--- a/llvm/include/llvm/MCA/HardwareUnits/HardwareUnit.h
+++ b/llvm/include/llvm/MCA/HardwareUnits/HardwareUnit.h
@@ -15,6 +15,8 @@
 #ifndef LLVM_MCA_HARDWAREUNITS_HARDWAREUNIT_H
 #define LLVM_MCA_HARDWAREUNITS_HARDWAREUNIT_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 namespace mca {
 
diff --git a/llvm/include/llvm/MCA/HardwareUnits/LSUnit.h \
b/llvm/include/llvm/MCA/HardwareUnits/LSUnit.h index 81a5453bac26c4c..28ce2ffd127d254 \
                100644
--- a/llvm/include/llvm/MCA/HardwareUnits/LSUnit.h
+++ b/llvm/include/llvm/MCA/HardwareUnits/LSUnit.h
@@ -20,6 +20,7 @@
 #include "llvm/MC/MCSchedule.h"
 #include "llvm/MCA/HardwareUnits/HardwareUnit.h"
 #include "llvm/MCA/Instruction.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace mca {
diff --git a/llvm/include/llvm/MCA/HardwareUnits/RegisterFile.h \
b/llvm/include/llvm/MCA/HardwareUnits/RegisterFile.h index \
                5bd74ad5fe7882a..68c9cf2ddcb4019 100644
--- a/llvm/include/llvm/MCA/HardwareUnits/RegisterFile.h
+++ b/llvm/include/llvm/MCA/HardwareUnits/RegisterFile.h
@@ -22,6 +22,7 @@
 #include "llvm/MC/MCSchedule.h"
 #include "llvm/MC/MCSubtargetInfo.h"
 #include "llvm/MCA/HardwareUnits/HardwareUnit.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace mca {
diff --git a/llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h \
b/llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h index \
                88085d0bc453b82..4a9269383d525d0 100644
--- a/llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h
+++ b/llvm/include/llvm/MCA/HardwareUnits/ResourceManager.h
@@ -20,6 +20,7 @@
 #include "llvm/MC/MCSchedule.h"
 #include "llvm/MCA/Instruction.h"
 #include "llvm/MCA/Support.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace mca {
diff --git a/llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h \
b/llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h index \
                4342a3e72fa8c44..51a794232ad5312 100644
--- a/llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h
+++ b/llvm/include/llvm/MCA/HardwareUnits/RetireControlUnit.h
@@ -17,6 +17,7 @@
 #include "llvm/MC/MCSchedule.h"
 #include "llvm/MCA/HardwareUnits/HardwareUnit.h"
 #include "llvm/MCA/Instruction.h"
+#include "llvm/Support/Compiler.h"
 #include <vector>
 
 namespace llvm {
diff --git a/llvm/include/llvm/MCA/HardwareUnits/Scheduler.h \
b/llvm/include/llvm/MCA/HardwareUnits/Scheduler.h index \
                8c0ad2699b8db85..d363c22cea4022f 100644
--- a/llvm/include/llvm/MCA/HardwareUnits/Scheduler.h
+++ b/llvm/include/llvm/MCA/HardwareUnits/Scheduler.h
@@ -20,6 +20,7 @@
 #include "llvm/MCA/HardwareUnits/LSUnit.h"
 #include "llvm/MCA/HardwareUnits/ResourceManager.h"
 #include "llvm/MCA/Support.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace mca {
diff --git a/llvm/include/llvm/MCA/IncrementalSourceMgr.h \
b/llvm/include/llvm/MCA/IncrementalSourceMgr.h index d53f1138b94059b..b3dc5c24c47f6e5 \
                100644
--- a/llvm/include/llvm/MCA/IncrementalSourceMgr.h
+++ b/llvm/include/llvm/MCA/IncrementalSourceMgr.h
@@ -15,6 +15,7 @@
 #define LLVM_MCA_INCREMENTALSOURCEMGR_H
 
 #include "llvm/MCA/SourceMgr.h"
+#include "llvm/Support/Compiler.h"
 #include <deque>
 
 namespace llvm {
diff --git a/llvm/include/llvm/MCA/InstrBuilder.h \
b/llvm/include/llvm/MCA/InstrBuilder.h index c8619af04b330ff..4c5b5287ac6aaa2 100644
--- a/llvm/include/llvm/MCA/InstrBuilder.h
+++ b/llvm/include/llvm/MCA/InstrBuilder.h
@@ -22,6 +22,7 @@
 #include "llvm/MCA/CustomBehaviour.h"
 #include "llvm/MCA/Instruction.h"
 #include "llvm/MCA/Support.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/MCA/Instruction.h \
b/llvm/include/llvm/MCA/Instruction.h index e48a70164bec6c1..9c6bd9ed3b13787 100644
--- a/llvm/include/llvm/MCA/Instruction.h
+++ b/llvm/include/llvm/MCA/Instruction.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/MC/MCRegister.h" // definition of MCPhysReg.
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MathExtras.h"
 
 #ifndef NDEBUG
diff --git a/llvm/include/llvm/MCA/Pipeline.h b/llvm/include/llvm/MCA/Pipeline.h
index 18032fdfe012c20..484cda3289342ee 100644
--- a/llvm/include/llvm/MCA/Pipeline.h
+++ b/llvm/include/llvm/MCA/Pipeline.h
@@ -16,6 +16,7 @@
 #define LLVM_MCA_PIPELINE_H
 
 #include "llvm/MCA/Stages/Stage.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/MCA/SourceMgr.h b/llvm/include/llvm/MCA/SourceMgr.h
index 16a60d1116ad6bf..23682d3820912e8 100644
--- a/llvm/include/llvm/MCA/SourceMgr.h
+++ b/llvm/include/llvm/MCA/SourceMgr.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/MCA/Instruction.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace mca {
diff --git a/llvm/include/llvm/MCA/Stages/DispatchStage.h \
b/llvm/include/llvm/MCA/Stages/DispatchStage.h index c2b521993c2fb7e..7a2cc95c26497a0 \
                100644
--- a/llvm/include/llvm/MCA/Stages/DispatchStage.h
+++ b/llvm/include/llvm/MCA/Stages/DispatchStage.h
@@ -24,6 +24,7 @@
 #include "llvm/MCA/HardwareUnits/RetireControlUnit.h"
 #include "llvm/MCA/Instruction.h"
 #include "llvm/MCA/Stages/Stage.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace mca {
diff --git a/llvm/include/llvm/MCA/Stages/EntryStage.h \
b/llvm/include/llvm/MCA/Stages/EntryStage.h index fb1244aa1933a65..c157c34c989ebe6 \
                100644
--- a/llvm/include/llvm/MCA/Stages/EntryStage.h
+++ b/llvm/include/llvm/MCA/Stages/EntryStage.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/MCA/SourceMgr.h"
 #include "llvm/MCA/Stages/Stage.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace mca {
diff --git a/llvm/include/llvm/MCA/Stages/ExecuteStage.h \
b/llvm/include/llvm/MCA/Stages/ExecuteStage.h index 03a78a8b6b85b14..21c27669ee052e4 \
                100644
--- a/llvm/include/llvm/MCA/Stages/ExecuteStage.h
+++ b/llvm/include/llvm/MCA/Stages/ExecuteStage.h
@@ -21,6 +21,7 @@
 #include "llvm/MCA/HardwareUnits/Scheduler.h"
 #include "llvm/MCA/Instruction.h"
 #include "llvm/MCA/Stages/Stage.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace mca {
diff --git a/llvm/include/llvm/MCA/Stages/InOrderIssueStage.h \
b/llvm/include/llvm/MCA/Stages/InOrderIssueStage.h index \
                f9286acef9006da..16973c55c6c3abb 100644
--- a/llvm/include/llvm/MCA/Stages/InOrderIssueStage.h
+++ b/llvm/include/llvm/MCA/Stages/InOrderIssueStage.h
@@ -18,6 +18,7 @@
 #include "llvm/MCA/HardwareUnits/ResourceManager.h"
 #include "llvm/MCA/SourceMgr.h"
 #include "llvm/MCA/Stages/Stage.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace mca {
diff --git a/llvm/include/llvm/MCA/Stages/InstructionTables.h \
b/llvm/include/llvm/MCA/Stages/InstructionTables.h index \
                9617fd49db6e05a..84861cc0b056fe4 100644
--- a/llvm/include/llvm/MCA/Stages/InstructionTables.h
+++ b/llvm/include/llvm/MCA/Stages/InstructionTables.h
@@ -21,6 +21,7 @@
 #include "llvm/MCA/HardwareUnits/Scheduler.h"
 #include "llvm/MCA/Stages/Stage.h"
 #include "llvm/MCA/Support.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace mca {
diff --git a/llvm/include/llvm/MCA/Stages/MicroOpQueueStage.h \
b/llvm/include/llvm/MCA/Stages/MicroOpQueueStage.h index \
                d9e3264c5951fba..d4608fe595c8861 100644
--- a/llvm/include/llvm/MCA/Stages/MicroOpQueueStage.h
+++ b/llvm/include/llvm/MCA/Stages/MicroOpQueueStage.h
@@ -18,6 +18,7 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/MCA/Stages/Stage.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace mca {
diff --git a/llvm/include/llvm/MCA/Stages/RetireStage.h \
b/llvm/include/llvm/MCA/Stages/RetireStage.h index aafe2815df15036..ab6d21e9c4de6eb \
                100644
--- a/llvm/include/llvm/MCA/Stages/RetireStage.h
+++ b/llvm/include/llvm/MCA/Stages/RetireStage.h
@@ -21,6 +21,7 @@
 #include "llvm/MCA/HardwareUnits/RegisterFile.h"
 #include "llvm/MCA/HardwareUnits/RetireControlUnit.h"
 #include "llvm/MCA/Stages/Stage.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace mca {
diff --git a/llvm/include/llvm/MCA/Stages/Stage.h \
b/llvm/include/llvm/MCA/Stages/Stage.h index a1fc7a8af7ad69c..f869e825b05ab66 100644
--- a/llvm/include/llvm/MCA/Stages/Stage.h
+++ b/llvm/include/llvm/MCA/Stages/Stage.h
@@ -16,6 +16,7 @@
 #define LLVM_MCA_STAGES_STAGE_H
 
 #include "llvm/MCA/HWEventListener.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <set>
 
diff --git a/llvm/include/llvm/MCA/Support.h b/llvm/include/llvm/MCA/Support.h
index e5e6278171051f0..67aec1ed7610e04 100644
--- a/llvm/include/llvm/MCA/Support.h
+++ b/llvm/include/llvm/MCA/Support.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/MC/MCSchedule.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MathExtras.h"
 
diff --git a/llvm/include/llvm/MCA/View.h b/llvm/include/llvm/MCA/View.h
index ff8fc1ceb3f1414..9bf69f88360015e 100644
--- a/llvm/include/llvm/MCA/View.h
+++ b/llvm/include/llvm/MCA/View.h
@@ -17,6 +17,7 @@
 
 #include "llvm/MC/MCInstPrinter.h"
 #include "llvm/MCA/HWEventListener.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/JSON.h"
 #include "llvm/Support/raw_ostream.h"
 
diff --git a/llvm/include/llvm/ObjCopy/COFF/COFFConfig.h \
b/llvm/include/llvm/ObjCopy/COFF/COFFConfig.h index d69285d7b5b3c84..533c2f9ce759250 \
                100644
--- a/llvm/include/llvm/ObjCopy/COFF/COFFConfig.h
+++ b/llvm/include/llvm/ObjCopy/COFF/COFFConfig.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_OBJCOPY_COFF_COFFCONFIG_H
 #define LLVM_OBJCOPY_COFF_COFFCONFIG_H
 
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/ObjCopy/COFF/COFFObjcopy.h \
b/llvm/include/llvm/ObjCopy/COFF/COFFObjcopy.h index d9043d6c5d019c8..75ec4fe2f5efd17 \
                100644
--- a/llvm/include/llvm/ObjCopy/COFF/COFFObjcopy.h
+++ b/llvm/include/llvm/ObjCopy/COFF/COFFObjcopy.h
@@ -9,6 +9,8 @@
 #ifndef LLVM_OBJCOPY_COFF_COFFOBJCOPY_H
 #define LLVM_OBJCOPY_COFF_COFFOBJCOPY_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 class Error;
 class raw_ostream;
diff --git a/llvm/include/llvm/ObjCopy/CommonConfig.h \
b/llvm/include/llvm/ObjCopy/CommonConfig.h index 17ca9e8be228ea6..3555b3186d8a768 \
                100644
--- a/llvm/include/llvm/ObjCopy/CommonConfig.h
+++ b/llvm/include/llvm/ObjCopy/CommonConfig.h
@@ -16,6 +16,7 @@
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Object/ELFTypes.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/GlobPattern.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/Support/Regex.h"
diff --git a/llvm/include/llvm/ObjCopy/ConfigManager.h \
b/llvm/include/llvm/ObjCopy/ConfigManager.h index 2962cf99b270df0..9859f3a8723864a \
                100644
--- a/llvm/include/llvm/ObjCopy/ConfigManager.h
+++ b/llvm/include/llvm/ObjCopy/ConfigManager.h
@@ -16,6 +16,7 @@
 #include "llvm/ObjCopy/MultiFormatConfig.h"
 #include "llvm/ObjCopy/wasm/WasmConfig.h"
 #include "llvm/ObjCopy/XCOFF/XCOFFConfig.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace objcopy {
diff --git a/llvm/include/llvm/ObjCopy/ELF/ELFConfig.h \
b/llvm/include/llvm/ObjCopy/ELF/ELFConfig.h index 1e98b10919af112..cbaef0268fe58a2 \
                100644
--- a/llvm/include/llvm/ObjCopy/ELF/ELFConfig.h
+++ b/llvm/include/llvm/ObjCopy/ELF/ELFConfig.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Object/ELFTypes.h"
+#include "llvm/Support/Compiler.h"
 #include <vector>
 
 namespace llvm {
diff --git a/llvm/include/llvm/ObjCopy/ELF/ELFObjcopy.h \
b/llvm/include/llvm/ObjCopy/ELF/ELFObjcopy.h index 552b6fb655f1864..042a7a98cf86be8 \
                100644
--- a/llvm/include/llvm/ObjCopy/ELF/ELFObjcopy.h
+++ b/llvm/include/llvm/ObjCopy/ELF/ELFObjcopy.h
@@ -9,6 +9,8 @@
 #ifndef LLVM_OBJCOPY_ELF_ELFOBJCOPY_H
 #define LLVM_OBJCOPY_ELF_ELFOBJCOPY_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 class Error;
 class MemoryBuffer;
diff --git a/llvm/include/llvm/ObjCopy/MachO/MachOConfig.h \
b/llvm/include/llvm/ObjCopy/MachO/MachOConfig.h index \
                15f9699357f042d..ce2671b08fb63de 100644
--- a/llvm/include/llvm/ObjCopy/MachO/MachOConfig.h
+++ b/llvm/include/llvm/ObjCopy/MachO/MachOConfig.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/DenseSet.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 #include <vector>
 
diff --git a/llvm/include/llvm/ObjCopy/MachO/MachOObjcopy.h \
b/llvm/include/llvm/ObjCopy/MachO/MachOObjcopy.h index \
                73690d7ace8a51d..1aebb8b6775adca 100644
--- a/llvm/include/llvm/ObjCopy/MachO/MachOObjcopy.h
+++ b/llvm/include/llvm/ObjCopy/MachO/MachOObjcopy.h
@@ -9,6 +9,8 @@
 #ifndef LLVM_OBJCOPY_MACHO_MACHOOBJCOPY_H
 #define LLVM_OBJCOPY_MACHO_MACHOOBJCOPY_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 class Error;
 class raw_ostream;
diff --git a/llvm/include/llvm/ObjCopy/MultiFormatConfig.h \
b/llvm/include/llvm/ObjCopy/MultiFormatConfig.h index \
                180f2f82a908b89..a8b22847123b006 100644
--- a/llvm/include/llvm/ObjCopy/MultiFormatConfig.h
+++ b/llvm/include/llvm/ObjCopy/MultiFormatConfig.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_OBJCOPY_MULTIFORMATCONFIG_H
 #define LLVM_OBJCOPY_MULTIFORMATCONFIG_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/ObjCopy/ObjCopy.h \
b/llvm/include/llvm/ObjCopy/ObjCopy.h index 023814002c72710..d9808b9d99d8b48 100644
--- a/llvm/include/llvm/ObjCopy/ObjCopy.h
+++ b/llvm/include/llvm/ObjCopy/ObjCopy.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_OBJCOPY_OBJCOPY_H
 #define LLVM_OBJCOPY_OBJCOPY_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/ObjCopy/XCOFF/XCOFFConfig.h \
b/llvm/include/llvm/ObjCopy/XCOFF/XCOFFConfig.h index \
                adaeedc82b73b4c..143a62d9d693fd3 100644
--- a/llvm/include/llvm/ObjCopy/XCOFF/XCOFFConfig.h
+++ b/llvm/include/llvm/ObjCopy/XCOFF/XCOFFConfig.h
@@ -9,6 +9,8 @@
 #ifndef LLVM_OBJCOPY_XCOFF_XCOFFCONFIG_H
 #define LLVM_OBJCOPY_XCOFF_XCOFFCONFIG_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 namespace objcopy {
 
diff --git a/llvm/include/llvm/ObjCopy/XCOFF/XCOFFObjcopy.h \
b/llvm/include/llvm/ObjCopy/XCOFF/XCOFFObjcopy.h index \
                9fc85cb39fa5b00..63501ec297ac6a9 100644
--- a/llvm/include/llvm/ObjCopy/XCOFF/XCOFFObjcopy.h
+++ b/llvm/include/llvm/ObjCopy/XCOFF/XCOFFObjcopy.h
@@ -9,6 +9,8 @@
 #ifndef LLVM_OBJCOPY_XCOFF_XCOFFOBJCOPY_H
 #define LLVM_OBJCOPY_XCOFF_XCOFFOBJCOPY_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 class Error;
 class raw_ostream;
diff --git a/llvm/include/llvm/ObjCopy/wasm/WasmConfig.h \
b/llvm/include/llvm/ObjCopy/wasm/WasmConfig.h index 56a7055da9a77e0..fdb767002f67cfd \
                100644
--- a/llvm/include/llvm/ObjCopy/wasm/WasmConfig.h
+++ b/llvm/include/llvm/ObjCopy/wasm/WasmConfig.h
@@ -9,6 +9,8 @@
 #ifndef LLVM_OBJCOPY_WASM_WASMCONFIG_H
 #define LLVM_OBJCOPY_WASM_WASMCONFIG_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 namespace objcopy {
 
diff --git a/llvm/include/llvm/ObjCopy/wasm/WasmObjcopy.h \
b/llvm/include/llvm/ObjCopy/wasm/WasmObjcopy.h index 5b4181c22b97988..526ed0c3c13f504 \
                100644
--- a/llvm/include/llvm/ObjCopy/wasm/WasmObjcopy.h
+++ b/llvm/include/llvm/ObjCopy/wasm/WasmObjcopy.h
@@ -9,6 +9,8 @@
 #ifndef LLVM_OBJCOPY_WASM_WASMOBJCOPY_H
 #define LLVM_OBJCOPY_WASM_WASMOBJCOPY_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 class Error;
 class raw_ostream;
diff --git a/llvm/include/llvm/Object/Archive.h b/llvm/include/llvm/Object/Archive.h
index 27f504779c4f525..600f74ca6dd98a1 100644
--- a/llvm/include/llvm/Object/Archive.h
+++ b/llvm/include/llvm/Object/Archive.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/iterator_range.h"
 #include "llvm/Object/Binary.h"
 #include "llvm/Support/Chrono.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/MemoryBuffer.h"
diff --git a/llvm/include/llvm/Object/ArchiveWriter.h \
b/llvm/include/llvm/Object/ArchiveWriter.h index c89246f1d5694ef..be9d21a3e1cd490 \
                100644
--- a/llvm/include/llvm/Object/ArchiveWriter.h
+++ b/llvm/include/llvm/Object/ArchiveWriter.h
@@ -14,6 +14,7 @@
 #define LLVM_OBJECT_ARCHIVEWRITER_H
 
 #include "llvm/Object/Archive.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Object/Binary.h b/llvm/include/llvm/Object/Binary.h
index ce870e25acafe0c..9a1566c8d0e401d 100644
--- a/llvm/include/llvm/Object/Binary.h
+++ b/llvm/include/llvm/Object/Binary.h
@@ -16,6 +16,7 @@
 #include "llvm-c/Types.h"
 #include "llvm/Object/Error.h"
 #include "llvm/Support/CBindingWrapping.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/TargetParser/Triple.h"
diff --git a/llvm/include/llvm/Object/BuildID.h b/llvm/include/llvm/Object/BuildID.h
index b20f32b4d133ea3..9cbc3527cd8b972 100644
--- a/llvm/include/llvm/Object/BuildID.h
+++ b/llvm/include/llvm/Object/BuildID.h
@@ -17,6 +17,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace object {
diff --git a/llvm/include/llvm/Object/COFF.h b/llvm/include/llvm/Object/COFF.h
index e6a607921da0efc..a2fb51913d73b46 100644
--- a/llvm/include/llvm/Object/COFF.h
+++ b/llvm/include/llvm/Object/COFF.h
@@ -20,6 +20,7 @@
 #include "llvm/Object/Error.h"
 #include "llvm/Object/ObjectFile.h"
 #include "llvm/Support/BinaryByteStream.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ConvertUTF.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/ErrorHandling.h"
diff --git a/llvm/include/llvm/Object/COFFImportFile.h \
b/llvm/include/llvm/Object/COFFImportFile.h index 3d148112dcbb61f..a1e64c66d502a47 \
                100644
--- a/llvm/include/llvm/Object/COFFImportFile.h
+++ b/llvm/include/llvm/Object/COFFImportFile.h
@@ -20,6 +20,7 @@
 #include "llvm/Object/COFF.h"
 #include "llvm/Object/ObjectFile.h"
 #include "llvm/Object/SymbolicFile.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MemoryBufferRef.h"
 #include "llvm/Support/raw_ostream.h"
 
diff --git a/llvm/include/llvm/Object/COFFModuleDefinition.h \
b/llvm/include/llvm/Object/COFFModuleDefinition.h index \
                a4ed9978dcc0a26..e8c5114f2ac11d1 100644
--- a/llvm/include/llvm/Object/COFFModuleDefinition.h
+++ b/llvm/include/llvm/Object/COFFModuleDefinition.h
@@ -20,6 +20,7 @@
 
 #include "llvm/BinaryFormat/COFF.h"
 #include "llvm/Object/COFFImportFile.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace object {
diff --git a/llvm/include/llvm/Object/CVDebugRecord.h \
b/llvm/include/llvm/Object/CVDebugRecord.h index d41c7391f70199f..7db7b778f4431ce \
                100644
--- a/llvm/include/llvm/Object/CVDebugRecord.h
+++ b/llvm/include/llvm/Object/CVDebugRecord.h
@@ -10,6 +10,7 @@
 #define LLVM_OBJECT_CVDEBUGRECORD_H
 
 #include "llvm/Support/Endian.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace OMF {
diff --git a/llvm/include/llvm/Object/DXContainer.h \
b/llvm/include/llvm/Object/DXContainer.h index 55371d14a368938..33aa18470af387e \
                100644
--- a/llvm/include/llvm/Object/DXContainer.h
+++ b/llvm/include/llvm/Object/DXContainer.h
@@ -20,6 +20,7 @@
 #include "llvm/BinaryFormat/DXContainer.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MemoryBufferRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/TargetParser/Triple.h"
 #include <variant>
 
diff --git a/llvm/include/llvm/Object/Decompressor.h \
b/llvm/include/llvm/Object/Decompressor.h index d361b3fba81da19..a51fa8691635b8c \
                100644
--- a/llvm/include/llvm/Object/Decompressor.h
+++ b/llvm/include/llvm/Object/Decompressor.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Compression.h"
 #include "llvm/Support/Error.h"
 
diff --git a/llvm/include/llvm/Object/ELF.h b/llvm/include/llvm/Object/ELF.h
index a1cf47a1c4a6173..2119c9b54566e85 100644
--- a/llvm/include/llvm/Object/ELF.h
+++ b/llvm/include/llvm/Object/ELF.h
@@ -21,6 +21,7 @@
 #include "llvm/BinaryFormat/ELF.h"
 #include "llvm/Object/ELFTypes.h"
 #include "llvm/Object/Error.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include <cassert>
diff --git a/llvm/include/llvm/Object/ELFObjectFile.h \
b/llvm/include/llvm/Object/ELFObjectFile.h index f3016cc141b0eda..152155fb8a27080 \
                100644
--- a/llvm/include/llvm/Object/ELFObjectFile.h
+++ b/llvm/include/llvm/Object/ELFObjectFile.h
@@ -25,6 +25,7 @@
 #include "llvm/Object/ObjectFile.h"
 #include "llvm/Object/SymbolicFile.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ELFAttributeParser.h"
 #include "llvm/Support/ELFAttributes.h"
 #include "llvm/Support/Endian.h"
diff --git a/llvm/include/llvm/Object/ELFTypes.h \
b/llvm/include/llvm/Object/ELFTypes.h index 215313ee6f9b362..f8a698bb35a5364 100644
--- a/llvm/include/llvm/Object/ELFTypes.h
+++ b/llvm/include/llvm/Object/ELFTypes.h
@@ -13,6 +13,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/BinaryFormat/ELF.h"
 #include "llvm/Object/Error.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MathExtras.h"
diff --git a/llvm/include/llvm/Object/Error.h b/llvm/include/llvm/Object/Error.h
index 8875fb6e1a2086c..d76df0494b22f69 100644
--- a/llvm/include/llvm/Object/Error.h
+++ b/llvm/include/llvm/Object/Error.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_OBJECT_ERROR_H
 #define LLVM_OBJECT_ERROR_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <system_error>
 
diff --git a/llvm/include/llvm/Object/FaultMapParser.h \
b/llvm/include/llvm/Object/FaultMapParser.h index 4d1f0397a0dd222..32f8075bb10b703 \
                100644
--- a/llvm/include/llvm/Object/FaultMapParser.h
+++ b/llvm/include/llvm/Object/FaultMapParser.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_OBJECT_FAULTMAPPARSER_H
 #define LLVM_OBJECT_FAULTMAPPARSER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include <cassert>
 #include <cstdint>
diff --git a/llvm/include/llvm/Object/GOFF.h b/llvm/include/llvm/Object/GOFF.h
index f4aa04cd99fcf5d..ac1923b5a83fd31 100644
--- a/llvm/include/llvm/Object/GOFF.h
+++ b/llvm/include/llvm/Object/GOFF.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/SmallString.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/BinaryFormat/GOFF.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/raw_ostream.h"
diff --git a/llvm/include/llvm/Object/GOFFObjectFile.h \
b/llvm/include/llvm/Object/GOFFObjectFile.h index 6c7e9cf92e430ba..f99eb82cc096e4a \
                100644
--- a/llvm/include/llvm/Object/GOFFObjectFile.h
+++ b/llvm/include/llvm/Object/GOFFObjectFile.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/IndexedMap.h"
 #include "llvm/BinaryFormat/GOFF.h"
 #include "llvm/Object/ObjectFile.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ConvertEBCDIC.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/Endian.h"
diff --git a/llvm/include/llvm/Object/IRObjectFile.h \
b/llvm/include/llvm/Object/IRObjectFile.h index 55d910fe970e831..d0e339192df11fe \
                100644
--- a/llvm/include/llvm/Object/IRObjectFile.h
+++ b/llvm/include/llvm/Object/IRObjectFile.h
@@ -17,6 +17,7 @@
 #include "llvm/Object/IRSymtab.h"
 #include "llvm/Object/ModuleSymbolTable.h"
 #include "llvm/Object/SymbolicFile.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Module;
diff --git a/llvm/include/llvm/Object/IRSymtab.h \
b/llvm/include/llvm/Object/IRSymtab.h index 72a51ffa1022de2..0b7a2fccb2d0d47 100644
--- a/llvm/include/llvm/Object/IRSymtab.h
+++ b/llvm/include/llvm/Object/IRSymtab.h
@@ -30,6 +30,7 @@
 #include "llvm/IR/GlobalValue.h"
 #include "llvm/Object/SymbolicFile.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include <cassert>
diff --git a/llvm/include/llvm/Object/MachO.h b/llvm/include/llvm/Object/MachO.h
index 54c876a8cb4f9fc..8ea599fbcde2082 100644
--- a/llvm/include/llvm/Object/MachO.h
+++ b/llvm/include/llvm/Object/MachO.h
@@ -25,6 +25,7 @@
 #include "llvm/Object/Binary.h"
 #include "llvm/Object/ObjectFile.h"
 #include "llvm/Object/SymbolicFile.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/Format.h"
 #include "llvm/Support/MemoryBuffer.h"
diff --git a/llvm/include/llvm/Object/MachOUniversal.h \
b/llvm/include/llvm/Object/MachOUniversal.h index 5e3a63e05dbf4c5..e94c7d56f953f6c \
                100644
--- a/llvm/include/llvm/Object/MachOUniversal.h
+++ b/llvm/include/llvm/Object/MachOUniversal.h
@@ -17,6 +17,7 @@
 #include "llvm/BinaryFormat/MachO.h"
 #include "llvm/Object/Binary.h"
 #include "llvm/Object/MachO.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/TargetParser/Triple.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Object/MachOUniversalWriter.h \
b/llvm/include/llvm/Object/MachOUniversalWriter.h index \
                4004f25f3fb7ecc..2ead8ef6f4e2b9f 100644
--- a/llvm/include/llvm/Object/MachOUniversalWriter.h
+++ b/llvm/include/llvm/Object/MachOUniversalWriter.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/Twine.h"
 #include "llvm/BinaryFormat/MachO.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 #include <string>
diff --git a/llvm/include/llvm/Object/Minidump.h \
b/llvm/include/llvm/Object/Minidump.h index e45d4de0090def7..71338087ff3540e 100644
--- a/llvm/include/llvm/Object/Minidump.h
+++ b/llvm/include/llvm/Object/Minidump.h
@@ -14,6 +14,7 @@
 #include "llvm/ADT/iterator.h"
 #include "llvm/BinaryFormat/Minidump.h"
 #include "llvm/Object/Binary.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Object/ModuleSymbolTable.h \
b/llvm/include/llvm/Object/ModuleSymbolTable.h index 1134b98c2247e25..b84de8e02d11537 \
                100644
--- a/llvm/include/llvm/Object/ModuleSymbolTable.h
+++ b/llvm/include/llvm/Object/ModuleSymbolTable.h
@@ -20,6 +20,7 @@
 #include "llvm/IR/Mangler.h"
 #include "llvm/Object/SymbolicFile.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <string>
 #include <utility>
diff --git a/llvm/include/llvm/Object/ObjectFile.h \
b/llvm/include/llvm/Object/ObjectFile.h index 2b614185c694b63..01552f5d15f5601 100644
--- a/llvm/include/llvm/Object/ObjectFile.h
+++ b/llvm/include/llvm/Object/ObjectFile.h
@@ -23,6 +23,7 @@
 #include "llvm/Object/Error.h"
 #include "llvm/Object/SymbolicFile.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MemoryBufferRef.h"
 #include "llvm/TargetParser/Triple.h"
diff --git a/llvm/include/llvm/Object/OffloadBinary.h \
b/llvm/include/llvm/Object/OffloadBinary.h index 320a8e1f6d8ff90..0a6ebbc591b631e \
                100644
--- a/llvm/include/llvm/Object/OffloadBinary.h
+++ b/llvm/include/llvm/Object/OffloadBinary.h
@@ -20,6 +20,7 @@
 #include "llvm/ADT/MapVector.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Object/Binary.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include <memory>
diff --git a/llvm/include/llvm/Object/RelocationResolver.h \
b/llvm/include/llvm/Object/RelocationResolver.h index \
                2acdf5ed2fe1a15..f5262137ae08010 100644
--- a/llvm/include/llvm/Object/RelocationResolver.h
+++ b/llvm/include/llvm/Object/RelocationResolver.h
@@ -15,6 +15,7 @@
 #ifndef LLVM_OBJECT_RELOCATIONRESOLVER_H
 #define LLVM_OBJECT_RELOCATIONRESOLVER_H
 
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <utility>
 
diff --git a/llvm/include/llvm/Object/SymbolSize.h \
b/llvm/include/llvm/Object/SymbolSize.h index 085623e35907d5f..6c372ddcfdeeca9 100644
--- a/llvm/include/llvm/Object/SymbolSize.h
+++ b/llvm/include/llvm/Object/SymbolSize.h
@@ -11,6 +11,7 @@
 #define LLVM_OBJECT_SYMBOLSIZE_H
 
 #include "llvm/Object/ObjectFile.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace object {
diff --git a/llvm/include/llvm/Object/SymbolicFile.h \
b/llvm/include/llvm/Object/SymbolicFile.h index b13588c147d9b2b..8877019b950bd65 \
                100644
--- a/llvm/include/llvm/Object/SymbolicFile.h
+++ b/llvm/include/llvm/Object/SymbolicFile.h
@@ -16,6 +16,7 @@
 #include "llvm/ADT/iterator_range.h"
 #include "llvm/BinaryFormat/Magic.h"
 #include "llvm/Object/Binary.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/Format.h"
 #include "llvm/Support/MemoryBufferRef.h"
diff --git a/llvm/include/llvm/Object/TapiFile.h \
b/llvm/include/llvm/Object/TapiFile.h index 53889a3125cb1ac..5a0cde7b26cbf17 100644
--- a/llvm/include/llvm/Object/TapiFile.h
+++ b/llvm/include/llvm/Object/TapiFile.h
@@ -17,6 +17,7 @@
 #include "llvm/Object/Binary.h"
 #include "llvm/Object/ObjectFile.h"
 #include "llvm/Object/SymbolicFile.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MemoryBufferRef.h"
 #include "llvm/TextAPI/Architecture.h"
diff --git a/llvm/include/llvm/Object/TapiUniversal.h \
b/llvm/include/llvm/Object/TapiUniversal.h index fff66c28c1a4143..b5a3d5d748e741b \
                100644
--- a/llvm/include/llvm/Object/TapiUniversal.h
+++ b/llvm/include/llvm/Object/TapiUniversal.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Object/Binary.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MemoryBufferRef.h"
 #include "llvm/TextAPI/Architecture.h"
diff --git a/llvm/include/llvm/Object/Wasm.h b/llvm/include/llvm/Object/Wasm.h
index 8dd8918ddf21d50..eb325bab7064528 100644
--- a/llvm/include/llvm/Object/Wasm.h
+++ b/llvm/include/llvm/Object/Wasm.h
@@ -23,6 +23,7 @@
 #include "llvm/MC/MCSymbolWasm.h"
 #include "llvm/Object/Binary.h"
 #include "llvm/Object/ObjectFile.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include <cstddef>
diff --git a/llvm/include/llvm/Object/WindowsMachineFlag.h \
b/llvm/include/llvm/Object/WindowsMachineFlag.h index \
                05b8f0d52d3fdc2..443c73381c559b1 100644
--- a/llvm/include/llvm/Object/WindowsMachineFlag.h
+++ b/llvm/include/llvm/Object/WindowsMachineFlag.h
@@ -13,6 +13,8 @@
 #ifndef LLVM_OBJECT_WINDOWSMACHINEFLAG_H
 #define LLVM_OBJECT_WINDOWSMACHINEFLAG_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 
 class StringRef;
diff --git a/llvm/include/llvm/Object/WindowsResource.h \
b/llvm/include/llvm/Object/WindowsResource.h index ec390a4814cca39..c229260bc857a57 \
                100644
--- a/llvm/include/llvm/Object/WindowsResource.h
+++ b/llvm/include/llvm/Object/WindowsResource.h
@@ -34,6 +34,7 @@
 #include "llvm/Object/Error.h"
 #include "llvm/Support/BinaryByteStream.h"
 #include "llvm/Support/BinaryStreamReader.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ConvertUTF.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
diff --git a/llvm/include/llvm/Object/XCOFFObjectFile.h \
b/llvm/include/llvm/Object/XCOFFObjectFile.h index 1f8ba6f32634eee..db72da15faab48c \
                100644
--- a/llvm/include/llvm/Object/XCOFFObjectFile.h
+++ b/llvm/include/llvm/Object/XCOFFObjectFile.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/BinaryFormat/XCOFF.h"
 #include "llvm/Object/ObjectFile.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include <limits>
 
diff --git a/llvm/include/llvm/ObjectYAML/ArchiveYAML.h \
b/llvm/include/llvm/ObjectYAML/ArchiveYAML.h index c83c7ee56f1f9a5..542e32be0fb2311 \
                100644
--- a/llvm/include/llvm/ObjectYAML/ArchiveYAML.h
+++ b/llvm/include/llvm/ObjectYAML/ArchiveYAML.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_OBJECTYAML_ARCHIVEYAML_H
 #define LLVM_OBJECTYAML_ARCHIVEYAML_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/YAMLTraits.h"
 #include "llvm/ObjectYAML/YAML.h"
 #include "llvm/ADT/MapVector.h"
diff --git a/llvm/include/llvm/ObjectYAML/COFFYAML.h \
b/llvm/include/llvm/ObjectYAML/COFFYAML.h index 1d941ae7b1a3e39..811fe2b5930f862 \
                100644
--- a/llvm/include/llvm/ObjectYAML/COFFYAML.h
+++ b/llvm/include/llvm/ObjectYAML/COFFYAML.h
@@ -19,6 +19,7 @@
 #include "llvm/ObjectYAML/CodeViewYAMLTypeHashing.h"
 #include "llvm/ObjectYAML/CodeViewYAMLTypes.h"
 #include "llvm/ObjectYAML/YAML.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <optional>
 #include <vector>
diff --git a/llvm/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h \
b/llvm/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h index \
                6c712956dfb5d67..a3c7d76f3cfb609 100644
--- a/llvm/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h
+++ b/llvm/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h
@@ -19,6 +19,7 @@
 #include "llvm/DebugInfo/CodeView/CodeView.h"
 #include "llvm/DebugInfo/CodeView/DebugSubsection.h"
 #include "llvm/DebugInfo/CodeView/DebugSubsectionRecord.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/YAMLTraits.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h \
b/llvm/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h index \
                7c05c9eea05edfd..b66629a9e1d1d32 100644
--- a/llvm/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h
+++ b/llvm/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h
@@ -16,6 +16,7 @@
 
 #include "llvm/DebugInfo/CodeView/CodeView.h"
 #include "llvm/DebugInfo/CodeView/SymbolRecord.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/YAMLTraits.h"
 #include <memory>
diff --git a/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h \
b/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h index \
                25ba27c7c7a2281..14d956b59f2de0b 100644
--- a/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h
+++ b/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h
@@ -18,6 +18,7 @@
 #include "llvm/DebugInfo/CodeView/TypeHashing.h"
 #include "llvm/ObjectYAML/YAML.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/YAMLTraits.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h \
b/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h index \
                04b5e0ba3aa1a09..822bb42cf74d24a 100644
--- a/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h
+++ b/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/DebugInfo/CodeView/TypeRecord.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/YAMLTraits.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/ObjectYAML/DWARFEmitter.h \
b/llvm/include/llvm/ObjectYAML/DWARFEmitter.h index ee421b2efc72bc2..e7dd82f6663f055 \
                100644
--- a/llvm/include/llvm/ObjectYAML/DWARFEmitter.h
+++ b/llvm/include/llvm/ObjectYAML/DWARFEmitter.h
@@ -14,6 +14,7 @@
 
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/TargetParser/Host.h"
diff --git a/llvm/include/llvm/ObjectYAML/DWARFYAML.h \
b/llvm/include/llvm/ObjectYAML/DWARFYAML.h index a70ddf3a180a2d0..5f0d2cd0454c599 \
                100644
--- a/llvm/include/llvm/ObjectYAML/DWARFYAML.h
+++ b/llvm/include/llvm/ObjectYAML/DWARFYAML.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/BinaryFormat/Dwarf.h"
 #include "llvm/ObjectYAML/YAML.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/YAMLTraits.h"
 #include <cstdint>
 #include <optional>
diff --git a/llvm/include/llvm/ObjectYAML/DXContainerYAML.h \
b/llvm/include/llvm/ObjectYAML/DXContainerYAML.h index \
                299c8bfaaa20cef..23970dae385f625 100644
--- a/llvm/include/llvm/ObjectYAML/DXContainerYAML.h
+++ b/llvm/include/llvm/ObjectYAML/DXContainerYAML.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/BinaryFormat/DXContainer.h"
 #include "llvm/ObjectYAML/YAML.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/YAMLTraits.h"
 #include <cstdint>
 #include <optional>
diff --git a/llvm/include/llvm/ObjectYAML/ELFYAML.h \
b/llvm/include/llvm/ObjectYAML/ELFYAML.h index 1ba41232f552e3a..5396ef461adf7a8 \
                100644
--- a/llvm/include/llvm/ObjectYAML/ELFYAML.h
+++ b/llvm/include/llvm/ObjectYAML/ELFYAML.h
@@ -20,6 +20,7 @@
 #include "llvm/Object/ELFTypes.h"
 #include "llvm/ObjectYAML/DWARFYAML.h"
 #include "llvm/ObjectYAML/YAML.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/YAMLTraits.h"
 #include <cstdint>
 #include <memory>
diff --git a/llvm/include/llvm/ObjectYAML/MachOYAML.h \
b/llvm/include/llvm/ObjectYAML/MachOYAML.h index ccb81f5702d0e3f..b29d46c61c4a180 \
                100644
--- a/llvm/include/llvm/ObjectYAML/MachOYAML.h
+++ b/llvm/include/llvm/ObjectYAML/MachOYAML.h
@@ -19,6 +19,7 @@
 #include "llvm/BinaryFormat/MachO.h"
 #include "llvm/ObjectYAML/DWARFYAML.h"
 #include "llvm/ObjectYAML/YAML.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/YAMLTraits.h"
 #include <cstdint>
 #include <optional>
diff --git a/llvm/include/llvm/ObjectYAML/MinidumpYAML.h \
b/llvm/include/llvm/ObjectYAML/MinidumpYAML.h index b0cee541cef206a..0621edecaff6114 \
                100644
--- a/llvm/include/llvm/ObjectYAML/MinidumpYAML.h
+++ b/llvm/include/llvm/ObjectYAML/MinidumpYAML.h
@@ -12,6 +12,7 @@
 #include "llvm/BinaryFormat/Minidump.h"
 #include "llvm/Object/Minidump.h"
 #include "llvm/ObjectYAML/YAML.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/YAMLTraits.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/ObjectYAML/ObjectYAML.h \
b/llvm/include/llvm/ObjectYAML/ObjectYAML.h index b63607e6796b0b7..e9fa5a4d3995873 \
                100644
--- a/llvm/include/llvm/ObjectYAML/ObjectYAML.h
+++ b/llvm/include/llvm/ObjectYAML/ObjectYAML.h
@@ -18,6 +18,7 @@
 #include "llvm/ObjectYAML/OffloadYAML.h"
 #include "llvm/ObjectYAML/WasmYAML.h"
 #include "llvm/ObjectYAML/XCOFFYAML.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/YAMLTraits.h"
 #include <memory>
 
diff --git a/llvm/include/llvm/ObjectYAML/OffloadYAML.h \
b/llvm/include/llvm/ObjectYAML/OffloadYAML.h index 95d64c6eca184ae..79dee0763c40e05 \
                100644
--- a/llvm/include/llvm/ObjectYAML/OffloadYAML.h
+++ b/llvm/include/llvm/ObjectYAML/OffloadYAML.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/MapVector.h"
 #include "llvm/Object/OffloadBinary.h"
 #include "llvm/ObjectYAML/YAML.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/YAMLTraits.h"
 #include <optional>
 
diff --git a/llvm/include/llvm/ObjectYAML/WasmYAML.h \
b/llvm/include/llvm/ObjectYAML/WasmYAML.h index 0f6c4f06665fb8d..666f71c0edfff38 \
                100644
--- a/llvm/include/llvm/ObjectYAML/WasmYAML.h
+++ b/llvm/include/llvm/ObjectYAML/WasmYAML.h
@@ -19,6 +19,7 @@
 #include "llvm/BinaryFormat/Wasm.h"
 #include "llvm/ObjectYAML/YAML.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <memory>
 #include <vector>
diff --git a/llvm/include/llvm/ObjectYAML/XCOFFYAML.h \
b/llvm/include/llvm/ObjectYAML/XCOFFYAML.h index f1e821fe5fa369f..0ba0fb3a19223fc \
                100644
--- a/llvm/include/llvm/ObjectYAML/XCOFFYAML.h
+++ b/llvm/include/llvm/ObjectYAML/XCOFFYAML.h
@@ -14,6 +14,7 @@
 
 #include "llvm/BinaryFormat/XCOFF.h"
 #include "llvm/ObjectYAML/YAML.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 #include <vector>
 
diff --git a/llvm/include/llvm/ObjectYAML/YAML.h \
b/llvm/include/llvm/ObjectYAML/YAML.h index 3bf6527a7e2da6e..4b3afabd7edf013 100644
--- a/llvm/include/llvm/ObjectYAML/YAML.h
+++ b/llvm/include/llvm/ObjectYAML/YAML.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/YAMLTraits.h"
 #include <cstdint>
 
diff --git a/llvm/include/llvm/ObjectYAML/yaml2obj.h \
b/llvm/include/llvm/ObjectYAML/yaml2obj.h index 000da077bb18c6a..3aabd748bfb55c6 \
                100644
--- a/llvm/include/llvm/ObjectYAML/yaml2obj.h
+++ b/llvm/include/llvm/ObjectYAML/yaml2obj.h
@@ -12,6 +12,7 @@
 #define LLVM_OBJECTYAML_YAML2OBJ_H
 
 #include "llvm/ADT/STLExtras.h"
+#include "llvm/Support/Compiler.h"
 #include <memory>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Option/Arg.h b/llvm/include/llvm/Option/Arg.h
index 5a718438bf4a3ec..b9f52ed23a2482b 100644
--- a/llvm/include/llvm/Option/Arg.h
+++ b/llvm/include/llvm/Option/Arg.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Option/Option.h"
+#include "llvm/Support/Compiler.h"
 #include <string>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Option/ArgList.h b/llvm/include/llvm/Option/ArgList.h
index 310c8900af9ef52..a8b8b103dec08d5 100644
--- a/llvm/include/llvm/Option/ArgList.h
+++ b/llvm/include/llvm/Option/ArgList.h
@@ -19,6 +19,7 @@
 #include "llvm/Option/Arg.h"
 #include "llvm/Option/OptSpecifier.h"
 #include "llvm/Option/Option.h"
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <cstddef>
 #include <initializer_list>
diff --git a/llvm/include/llvm/Option/OptSpecifier.h \
b/llvm/include/llvm/Option/OptSpecifier.h index 7a5fcfb18b38862..8bcb02298e99a98 \
                100644
--- a/llvm/include/llvm/Option/OptSpecifier.h
+++ b/llvm/include/llvm/Option/OptSpecifier.h
@@ -9,6 +9,8 @@
 #ifndef LLVM_OPTION_OPTSPECIFIER_H
 #define LLVM_OPTION_OPTSPECIFIER_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 namespace opt {
 
diff --git a/llvm/include/llvm/Option/OptTable.h \
b/llvm/include/llvm/Option/OptTable.h index 6f3d6032e59ac56..90613e42cff2ec3 100644
--- a/llvm/include/llvm/Option/OptTable.h
+++ b/llvm/include/llvm/Option/OptTable.h
@@ -13,6 +13,7 @@
 #include "llvm/ADT/SmallString.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Option/OptSpecifier.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/StringSaver.h"
 #include <cassert>
 #include <string>
diff --git a/llvm/include/llvm/Option/Option.h b/llvm/include/llvm/Option/Option.h
index 9b35e81cd99144b..ebc02dda55cd194 100644
--- a/llvm/include/llvm/Option/Option.h
+++ b/llvm/include/llvm/Option/Option.h
@@ -13,6 +13,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Option/OptSpecifier.h"
 #include "llvm/Option/OptTable.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <cassert>
 #include <string>
diff --git a/llvm/include/llvm/Pass.h b/llvm/include/llvm/Pass.h
index 44b6dd95cc278c7..71ac3e1c864b78e 100644
--- a/llvm/include/llvm/Pass.h
+++ b/llvm/include/llvm/Pass.h
@@ -28,6 +28,7 @@
 #ifndef LLVM_PASS_H
 #define LLVM_PASS_H
 
+#include "llvm/Support/Compiler.h"
 #ifdef EXPENSIVE_CHECKS
 #include <cstdint>
 #endif
diff --git a/llvm/include/llvm/PassAnalysisSupport.h \
b/llvm/include/llvm/PassAnalysisSupport.h index 4bed3cb55a901cf..cdf2bcd6f389de0 \
                100644
--- a/llvm/include/llvm/PassAnalysisSupport.h
+++ b/llvm/include/llvm/PassAnalysisSupport.h
@@ -24,6 +24,7 @@
 
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <tuple>
 #include <utility>
diff --git a/llvm/include/llvm/PassInfo.h b/llvm/include/llvm/PassInfo.h
index 686fc044ebcb33a..4ecd5d9f05481e8 100644
--- a/llvm/include/llvm/PassInfo.h
+++ b/llvm/include/llvm/PassInfo.h
@@ -14,6 +14,7 @@
 #define LLVM_PASSINFO_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <vector>
 
diff --git a/llvm/include/llvm/PassRegistry.h b/llvm/include/llvm/PassRegistry.h
index 5d7f3a84a6be740..82b3346600f5742 100644
--- a/llvm/include/llvm/PassRegistry.h
+++ b/llvm/include/llvm/PassRegistry.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/RWMutex.h"
 #include <memory>
 #include <vector>
diff --git a/llvm/include/llvm/PassSupport.h b/llvm/include/llvm/PassSupport.h
index 774ece89bf01e24..99785a0c593f9a2 100644
--- a/llvm/include/llvm/PassSupport.h
+++ b/llvm/include/llvm/PassSupport.h
@@ -27,6 +27,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/PassInfo.h"
 #include "llvm/PassRegistry.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/Threading.h"
 #include <functional>
diff --git a/llvm/include/llvm/Passes/OptimizationLevel.h \
b/llvm/include/llvm/Passes/OptimizationLevel.h index d2c3fde4935fb0a..544f99ba63de05e \
                100644
--- a/llvm/include/llvm/Passes/OptimizationLevel.h
+++ b/llvm/include/llvm/Passes/OptimizationLevel.h
@@ -15,6 +15,7 @@
 #ifndef LLVM_PASSES_OPTIMIZATIONLEVEL_H
 #define LLVM_PASSES_OPTIMIZATIONLEVEL_H
 
+#include "llvm/Support/Compiler.h"
 #include <assert.h>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Passes/PassBuilder.h \
b/llvm/include/llvm/Passes/PassBuilder.h index b95fd41554bf283..f493d5f900daf5c \
                100644
--- a/llvm/include/llvm/Passes/PassBuilder.h
+++ b/llvm/include/llvm/Passes/PassBuilder.h
@@ -18,6 +18,7 @@
 #include "llvm/Analysis/CGSCCPassManager.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Passes/OptimizationLevel.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/PGOOptions.h"
 #include "llvm/Support/raw_ostream.h"
diff --git a/llvm/include/llvm/Passes/StandardInstrumentations.h \
b/llvm/include/llvm/Passes/StandardInstrumentations.h index \
                331130c6b22d990..380c3a95efe2feb 100644
--- a/llvm/include/llvm/Passes/StandardInstrumentations.h
+++ b/llvm/include/llvm/Passes/StandardInstrumentations.h
@@ -23,6 +23,7 @@
 #include "llvm/IR/PassTimingInfo.h"
 #include "llvm/IR/ValueHandle.h"
 #include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/TimeProfiler.h"
 #include "llvm/Transforms/IPO/SampleProfileProbe.h"
 
diff --git a/llvm/include/llvm/ProfileData/Coverage/CoverageMappingReader.h \
b/llvm/include/llvm/ProfileData/Coverage/CoverageMappingReader.h index \
                326c1b0d33384e3..510199a2864ede7 100644
--- a/llvm/include/llvm/ProfileData/Coverage/CoverageMappingReader.h
+++ b/llvm/include/llvm/ProfileData/Coverage/CoverageMappingReader.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ProfileData/Coverage/CoverageMapping.h"
 #include "llvm/ProfileData/InstrProf.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include <cstddef>
diff --git a/llvm/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h \
b/llvm/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h index \
                14206755881b92e..a21c6cd68acea61 100644
--- a/llvm/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h
+++ b/llvm/include/llvm/ProfileData/Coverage/CoverageMappingWriter.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ProfileData/Coverage/CoverageMapping.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/ProfileData/GCOV.h \
b/llvm/include/llvm/ProfileData/GCOV.h index 674260c81fa6a24..8d1de661172239e 100644
--- a/llvm/include/llvm/ProfileData/GCOV.h
+++ b/llvm/include/llvm/ProfileData/GCOV.h
@@ -21,6 +21,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/iterator.h"
 #include "llvm/ADT/iterator_range.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataExtractor.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/Support/raw_ostream.h"
diff --git a/llvm/include/llvm/ProfileData/InstrProfCorrelator.h \
b/llvm/include/llvm/ProfileData/InstrProfCorrelator.h index \
                2e26a21e8839ba9..5096693312df35f 100644
--- a/llvm/include/llvm/ProfileData/InstrProfCorrelator.h
+++ b/llvm/include/llvm/ProfileData/InstrProfCorrelator.h
@@ -14,6 +14,7 @@
 
 #include "llvm/ADT/DenseSet.h"
 #include "llvm/ProfileData/InstrProf.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/Support/YAMLTraits.h"
diff --git a/llvm/include/llvm/ProfileData/InstrProfReader.h \
b/llvm/include/llvm/ProfileData/InstrProfReader.h index \
                80c5284d8a7dde6..f0e811980b154fc 100644
--- a/llvm/include/llvm/ProfileData/InstrProfReader.h
+++ b/llvm/include/llvm/ProfileData/InstrProfReader.h
@@ -21,6 +21,7 @@
 #include "llvm/ProfileData/InstrProf.h"
 #include "llvm/ProfileData/InstrProfCorrelator.h"
 #include "llvm/ProfileData/MemProf.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/LineIterator.h"
diff --git a/llvm/include/llvm/ProfileData/InstrProfWriter.h \
b/llvm/include/llvm/ProfileData/InstrProfWriter.h index \
                e50705ee053eea8..9ba4e67ed1bd550 100644
--- a/llvm/include/llvm/ProfileData/InstrProfWriter.h
+++ b/llvm/include/llvm/ProfileData/InstrProfWriter.h
@@ -21,6 +21,7 @@
 #include "llvm/Object/BuildID.h"
 #include "llvm/ProfileData/InstrProf.h"
 #include "llvm/ProfileData/MemProf.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/ProfileData/ItaniumManglingCanonicalizer.h \
b/llvm/include/llvm/ProfileData/ItaniumManglingCanonicalizer.h index \
                e634f9c223e1642..25951537e1d0597 100644
--- a/llvm/include/llvm/ProfileData/ItaniumManglingCanonicalizer.h
+++ b/llvm/include/llvm/ProfileData/ItaniumManglingCanonicalizer.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_PROFILEDATA_ITANIUMMANGLINGCANONICALIZER_H
 #define LLVM_PROFILEDATA_ITANIUMMANGLINGCANONICALIZER_H
 
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/ProfileData/MemProf.h \
b/llvm/include/llvm/ProfileData/MemProf.h index d0ba5b10be02e62..3f1e06738466469 \
                100644
--- a/llvm/include/llvm/ProfileData/MemProf.h
+++ b/llvm/include/llvm/ProfileData/MemProf.h
@@ -6,6 +6,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/IR/GlobalValue.h"
 #include "llvm/ProfileData/MemProfData.inc"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/EndianStream.h"
 #include "llvm/Support/raw_ostream.h"
diff --git a/llvm/include/llvm/ProfileData/ProfileCommon.h \
b/llvm/include/llvm/ProfileData/ProfileCommon.h index \
                eaab59484c947a7..7b0142a26b81a3e 100644
--- a/llvm/include/llvm/ProfileData/ProfileCommon.h
+++ b/llvm/include/llvm/ProfileData/ProfileCommon.h
@@ -18,6 +18,7 @@
 #include "llvm/IR/ProfileSummary.h"
 #include "llvm/ProfileData/InstrProf.h"
 #include "llvm/ProfileData/SampleProf.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <algorithm>
 #include <cstdint>
diff --git a/llvm/include/llvm/ProfileData/RawMemProfReader.h \
b/llvm/include/llvm/ProfileData/RawMemProfReader.h index \
                4141cfb42e0d96a..85b6d8bc7e144c2 100644
--- a/llvm/include/llvm/ProfileData/RawMemProfReader.h
+++ b/llvm/include/llvm/ProfileData/RawMemProfReader.h
@@ -23,6 +23,7 @@
 #include "llvm/ProfileData/InstrProfReader.h"
 #include "llvm/ProfileData/MemProf.h"
 #include "llvm/ProfileData/MemProfData.inc"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MemoryBuffer.h"
 
diff --git a/llvm/include/llvm/ProfileData/SampleProf.h \
b/llvm/include/llvm/ProfileData/SampleProf.h index 12cc1f2fd002b9e..309e0be6b5aa12b \
                100644
--- a/llvm/include/llvm/ProfileData/SampleProf.h
+++ b/llvm/include/llvm/ProfileData/SampleProf.h
@@ -22,6 +22,7 @@
 #include "llvm/IR/Function.h"
 #include "llvm/IR/GlobalValue.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/ErrorOr.h"
 #include "llvm/Support/MathExtras.h"
diff --git a/llvm/include/llvm/ProfileData/SampleProfReader.h \
b/llvm/include/llvm/ProfileData/SampleProfReader.h index \
                e14b0bfc7912aa1..6b115603774399d 100644
--- a/llvm/include/llvm/ProfileData/SampleProfReader.h
+++ b/llvm/include/llvm/ProfileData/SampleProfReader.h
@@ -233,6 +233,7 @@
 #include "llvm/ProfileData/GCOV.h"
 #include "llvm/ProfileData/SampleProf.h"
 #include "llvm/ProfileData/SymbolRemappingReader.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/Discriminator.h"
 #include "llvm/Support/ErrorOr.h"
diff --git a/llvm/include/llvm/ProfileData/SampleProfWriter.h \
b/llvm/include/llvm/ProfileData/SampleProfWriter.h index \
                1f19283ea1dd0a8..7495bdfb0aa71ae 100644
--- a/llvm/include/llvm/ProfileData/SampleProfWriter.h
+++ b/llvm/include/llvm/ProfileData/SampleProfWriter.h
@@ -16,6 +16,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/IR/ProfileSummary.h"
 #include "llvm/ProfileData/SampleProf.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorOr.h"
 #include "llvm/Support/raw_ostream.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/ProfileData/SymbolRemappingReader.h \
b/llvm/include/llvm/ProfileData/SymbolRemappingReader.h index \
                61d32134e981a8d..ecfe40c5755d4d5 100644
--- a/llvm/include/llvm/ProfileData/SymbolRemappingReader.h
+++ b/llvm/include/llvm/ProfileData/SymbolRemappingReader.h
@@ -61,6 +61,7 @@
 
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ProfileData/ItaniumManglingCanonicalizer.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Remarks/BitstreamRemarkParser.h \
b/llvm/include/llvm/Remarks/BitstreamRemarkParser.h index \
                bfa60332d1a90ef..5c5edf20314a356 100644
--- a/llvm/include/llvm/Remarks/BitstreamRemarkParser.h
+++ b/llvm/include/llvm/Remarks/BitstreamRemarkParser.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Bitstream/BitstreamReader.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <array>
 #include <cstdint>
diff --git a/llvm/include/llvm/Remarks/BitstreamRemarkSerializer.h \
b/llvm/include/llvm/Remarks/BitstreamRemarkSerializer.h index \
                623680033750831..cf26b3b9c95531f 100644
--- a/llvm/include/llvm/Remarks/BitstreamRemarkSerializer.h
+++ b/llvm/include/llvm/Remarks/BitstreamRemarkSerializer.h
@@ -17,6 +17,7 @@
 #include "llvm/Bitstream/BitstreamWriter.h"
 #include "llvm/Remarks/BitstreamRemarkContainer.h"
 #include "llvm/Remarks/RemarkSerializer.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Remarks/HotnessThresholdParser.h \
b/llvm/include/llvm/Remarks/HotnessThresholdParser.h index \
                4cd0d2dff2fe640..737c8cde15fccd3 100644
--- a/llvm/include/llvm/Remarks/HotnessThresholdParser.h
+++ b/llvm/include/llvm/Remarks/HotnessThresholdParser.h
@@ -16,6 +16,7 @@
 #define LLVM_REMARKS_HOTNESSTHRESHOLDPARSER_H
 
 #include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Remarks/Remark.h b/llvm/include/llvm/Remarks/Remark.h
index 2ac881be6196517..3cbe7b6e60f7af5 100644
--- a/llvm/include/llvm/Remarks/Remark.h
+++ b/llvm/include/llvm/Remarks/Remark.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Support/CBindingWrapping.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 #include <string>
 
diff --git a/llvm/include/llvm/Remarks/RemarkFormat.h \
b/llvm/include/llvm/Remarks/RemarkFormat.h index 9c589eed44f3980..009c92a2376633b \
                100644
--- a/llvm/include/llvm/Remarks/RemarkFormat.h
+++ b/llvm/include/llvm/Remarks/RemarkFormat.h
@@ -14,6 +14,7 @@
 #define LLVM_REMARKS_REMARKFORMAT_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Remarks/RemarkLinker.h \
b/llvm/include/llvm/Remarks/RemarkLinker.h index f538718941c5d45..cd1a4a6e93c2318 \
                100644
--- a/llvm/include/llvm/Remarks/RemarkLinker.h
+++ b/llvm/include/llvm/Remarks/RemarkLinker.h
@@ -16,6 +16,7 @@
 #include "llvm/Remarks/Remark.h"
 #include "llvm/Remarks/RemarkFormat.h"
 #include "llvm/Remarks/RemarkStringTable.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <memory>
 #include <optional>
diff --git a/llvm/include/llvm/Remarks/RemarkParser.h \
b/llvm/include/llvm/Remarks/RemarkParser.h index 1333c582eba4f83..fe3b323f0de37cf \
                100644
--- a/llvm/include/llvm/Remarks/RemarkParser.h
+++ b/llvm/include/llvm/Remarks/RemarkParser.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Remarks/RemarkFormat.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <memory>
 #include <optional>
diff --git a/llvm/include/llvm/Remarks/RemarkSerializer.h \
b/llvm/include/llvm/Remarks/RemarkSerializer.h index f73135f4fbd3851..64361cd3afaf63f \
                100644
--- a/llvm/include/llvm/Remarks/RemarkSerializer.h
+++ b/llvm/include/llvm/Remarks/RemarkSerializer.h
@@ -15,6 +15,7 @@
 
 #include "llvm/Remarks/RemarkFormat.h"
 #include "llvm/Remarks/RemarkStringTable.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Remarks/RemarkStreamer.h \
b/llvm/include/llvm/Remarks/RemarkStreamer.h index 5b1cc81cdbf5010..37c2b47046b9cd4 \
                100644
--- a/llvm/include/llvm/Remarks/RemarkStreamer.h
+++ b/llvm/include/llvm/Remarks/RemarkStreamer.h
@@ -31,6 +31,7 @@
 #define LLVM_REMARKS_REMARKSTREAMER_H
 
 #include "llvm/Remarks/RemarkSerializer.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/Regex.h"
 #include <memory>
diff --git a/llvm/include/llvm/Remarks/RemarkStringTable.h \
b/llvm/include/llvm/Remarks/RemarkStringTable.h index \
                fe302c64d17f0b3..351b23faaa56036 100644
--- a/llvm/include/llvm/Remarks/RemarkStringTable.h
+++ b/llvm/include/llvm/Remarks/RemarkStringTable.h
@@ -18,6 +18,7 @@
 
 #include "llvm/ADT/StringMap.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include <vector>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Remarks/YAMLRemarkSerializer.h \
b/llvm/include/llvm/Remarks/YAMLRemarkSerializer.h index \
                d2a1db5791ae02f..95353e92d0a8df2 100644
--- a/llvm/include/llvm/Remarks/YAMLRemarkSerializer.h
+++ b/llvm/include/llvm/Remarks/YAMLRemarkSerializer.h
@@ -14,6 +14,7 @@
 #define LLVM_REMARKS_YAMLREMARKSERIALIZER_H
 
 #include "llvm/Remarks/RemarkSerializer.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/YAMLTraits.h"
 #include <optional>
 
diff --git a/llvm/include/llvm/Support/AMDGPUMetadata.h \
b/llvm/include/llvm/Support/AMDGPUMetadata.h index e0838a1f425ea5e..a0ab3992f702dad \
                100644
--- a/llvm/include/llvm/Support/AMDGPUMetadata.h
+++ b/llvm/include/llvm/Support/AMDGPUMetadata.h
@@ -16,6 +16,7 @@
 #define LLVM_SUPPORT_AMDGPUMETADATA_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <string>
 #include <system_error>
diff --git a/llvm/include/llvm/Support/ARMAttributeParser.h \
b/llvm/include/llvm/Support/ARMAttributeParser.h index \
                d1d953120ae7ed7..116f0403d19bc9b 100644
--- a/llvm/include/llvm/Support/ARMAttributeParser.h
+++ b/llvm/include/llvm/Support/ARMAttributeParser.h
@@ -12,6 +12,7 @@
 #include "ARMBuildAttributes.h"
 #include "ELFAttributeParser.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/ARMBuildAttributes.h \
b/llvm/include/llvm/Support/ARMBuildAttributes.h index \
                35f8992ca932968..f99b729e7fce6d6 100644
--- a/llvm/include/llvm/Support/ARMBuildAttributes.h
+++ b/llvm/include/llvm/Support/ARMBuildAttributes.h
@@ -18,6 +18,7 @@
 #ifndef LLVM_SUPPORT_ARMBUILDATTRIBUTES_H
 #define LLVM_SUPPORT_ARMBUILDATTRIBUTES_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ELFAttributes.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/ARMWinEH.h \
b/llvm/include/llvm/Support/ARMWinEH.h index b6710cca95650df..25011a7c870065f 100644
--- a/llvm/include/llvm/Support/ARMWinEH.h
+++ b/llvm/include/llvm/Support/ARMWinEH.h
@@ -10,6 +10,7 @@
 #define LLVM_SUPPORT_ARMWINEH_H
 
 #include "llvm/ADT/ArrayRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/Alignment.h \
b/llvm/include/llvm/Support/Alignment.h index 8d4a7e7ddce5f45..8153ec31e0cc7c0 100644
--- a/llvm/include/llvm/Support/Alignment.h
+++ b/llvm/include/llvm/Support/Alignment.h
@@ -21,6 +21,7 @@
 #ifndef LLVM_SUPPORT_ALIGNMENT_H_
 #define LLVM_SUPPORT_ALIGNMENT_H_
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MathExtras.h"
 #include <cassert>
 #include <optional>
diff --git a/llvm/include/llvm/Support/ArrayRecycler.h \
b/llvm/include/llvm/Support/ArrayRecycler.h index 5256ce80c0282ce..69f542b10b95871 \
                100644
--- a/llvm/include/llvm/Support/ArrayRecycler.h
+++ b/llvm/include/llvm/Support/ArrayRecycler.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MathExtras.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/Automaton.h \
b/llvm/include/llvm/Support/Automaton.h index c2b921311a8ceb4..e7c5e88e2cf4768 100644
--- a/llvm/include/llvm/Support/Automaton.h
+++ b/llvm/include/llvm/Support/Automaton.h
@@ -30,6 +30,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include <deque>
 #include <map>
 #include <memory>
diff --git a/llvm/include/llvm/Support/BLAKE3.h b/llvm/include/llvm/Support/BLAKE3.h
index 7b30dbccd173485..6c3b5492570aef3 100644
--- a/llvm/include/llvm/Support/BLAKE3.h
+++ b/llvm/include/llvm/Support/BLAKE3.h
@@ -16,6 +16,7 @@
 #include "llvm-c/blake3.h"
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Support/BalancedPartitioning.h \
b/llvm/include/llvm/Support/BalancedPartitioning.h index \
                a8464ac0fe60e58..5e8cfe8091ef3e3 100644
--- a/llvm/include/llvm/Support/BalancedPartitioning.h
+++ b/llvm/include/llvm/Support/BalancedPartitioning.h
@@ -41,6 +41,7 @@
 
 #include "raw_ostream.h"
 #include "llvm/ADT/ArrayRef.h"
+#include "llvm/Support/Compiler.h"
 
 #include <atomic>
 #include <condition_variable>
diff --git a/llvm/include/llvm/Support/Base64.h b/llvm/include/llvm/Support/Base64.h
index 3d96884749b32f4..77e41d58ad4878f 100644
--- a/llvm/include/llvm/Support/Base64.h
+++ b/llvm/include/llvm/Support/Base64.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_SUPPORT_BASE64_H
 #define LLVM_SUPPORT_BASE64_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 #include <string>
diff --git a/llvm/include/llvm/Support/BinaryByteStream.h \
b/llvm/include/llvm/Support/BinaryByteStream.h index 474a8df3ab38170..5f2e996f981d412 \
                100644
--- a/llvm/include/llvm/Support/BinaryByteStream.h
+++ b/llvm/include/llvm/Support/BinaryByteStream.h
@@ -14,6 +14,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Support/BinaryStream.h"
 #include "llvm/Support/BinaryStreamError.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/FileOutputBuffer.h"
 #include "llvm/Support/MemoryBuffer.h"
diff --git a/llvm/include/llvm/Support/BinaryItemStream.h \
b/llvm/include/llvm/Support/BinaryItemStream.h index eb512bf4721a8d3..bfdec2331d2bcf6 \
                100644
--- a/llvm/include/llvm/Support/BinaryItemStream.h
+++ b/llvm/include/llvm/Support/BinaryItemStream.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/Support/BinaryStream.h"
 #include "llvm/Support/BinaryStreamError.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cstddef>
 #include <cstdint>
diff --git a/llvm/include/llvm/Support/BinaryStream.h \
b/llvm/include/llvm/Support/BinaryStream.h index e87129d8c201f37..1a1546f82c7ef0e \
                100644
--- a/llvm/include/llvm/Support/BinaryStream.h
+++ b/llvm/include/llvm/Support/BinaryStream.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/BitmaskEnum.h"
 #include "llvm/Support/BinaryStreamError.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/Support/BinaryStreamArray.h \
b/llvm/include/llvm/Support/BinaryStreamArray.h index \
                ef2233c53ec2cc4..4dd27eb806d887d 100644
--- a/llvm/include/llvm/Support/BinaryStreamArray.h
+++ b/llvm/include/llvm/Support/BinaryStreamArray.h
@@ -26,6 +26,7 @@
 #include "llvm/ADT/iterator.h"
 #include "llvm/Support/Alignment.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cassert>
 #include <cstdint>
diff --git a/llvm/include/llvm/Support/BinaryStreamError.h \
b/llvm/include/llvm/Support/BinaryStreamError.h index \
                cf6e034ffd2cebd..ad1f62f911b2289 100644
--- a/llvm/include/llvm/Support/BinaryStreamError.h
+++ b/llvm/include/llvm/Support/BinaryStreamError.h
@@ -10,6 +10,7 @@
 #define LLVM_SUPPORT_BINARYSTREAMERROR_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 #include <string>
diff --git a/llvm/include/llvm/Support/BinaryStreamReader.h \
b/llvm/include/llvm/Support/BinaryStreamReader.h index \
                056d2a5036d6a43..885f6483beb9a87 100644
--- a/llvm/include/llvm/Support/BinaryStreamReader.h
+++ b/llvm/include/llvm/Support/BinaryStreamReader.h
@@ -14,6 +14,7 @@
 #include "llvm/Support/Alignment.h"
 #include "llvm/Support/BinaryStreamArray.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ConvertUTF.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
diff --git a/llvm/include/llvm/Support/BinaryStreamRef.h \
b/llvm/include/llvm/Support/BinaryStreamRef.h index 0cea224527ac50f..f00a018be01bef8 \
                100644
--- a/llvm/include/llvm/Support/BinaryStreamRef.h
+++ b/llvm/include/llvm/Support/BinaryStreamRef.h
@@ -12,6 +12,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/Support/BinaryStream.h"
 #include "llvm/Support/BinaryStreamError.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
 #include <memory>
diff --git a/llvm/include/llvm/Support/BinaryStreamWriter.h \
b/llvm/include/llvm/Support/BinaryStreamWriter.h index \
                d3d5edbf69e5204..10ac2f49881f82a 100644
--- a/llvm/include/llvm/Support/BinaryStreamWriter.h
+++ b/llvm/include/llvm/Support/BinaryStreamWriter.h
@@ -14,6 +14,7 @@
 #include "llvm/Support/BinaryStreamArray.h"
 #include "llvm/Support/BinaryStreamError.h"
 #include "llvm/Support/BinaryStreamRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
 #include <cstdint>
diff --git a/llvm/include/llvm/Support/CFGDiff.h \
b/llvm/include/llvm/Support/CFGDiff.h index c90b9aca78b514b..aa7e37f584c8be1 100644
--- a/llvm/include/llvm/Support/CFGDiff.h
+++ b/llvm/include/llvm/Support/CFGDiff.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/iterator.h"
 #include "llvm/ADT/iterator_range.h"
 #include "llvm/Support/CFGUpdate.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/type_traits.h"
 #include <cassert>
 #include <cstddef>
diff --git a/llvm/include/llvm/Support/CSKYAttributeParser.h \
b/llvm/include/llvm/Support/CSKYAttributeParser.h index \
                e926ebe5e306e3a..00cc50bfb4b66fa 100644
--- a/llvm/include/llvm/Support/CSKYAttributeParser.h
+++ b/llvm/include/llvm/Support/CSKYAttributeParser.h
@@ -10,6 +10,7 @@
 #define LLVM_SUPPORT_CSKYATTRIBUTEPARSER_H
 
 #include "llvm/Support/CSKYAttributes.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ELFAttributeParser.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/CSKYAttributes.h \
b/llvm/include/llvm/Support/CSKYAttributes.h index 723f2ceee8fb790..23c88b347179110 \
                100644
--- a/llvm/include/llvm/Support/CSKYAttributes.h
+++ b/llvm/include/llvm/Support/CSKYAttributes.h
@@ -12,6 +12,7 @@
 #ifndef LLVM_SUPPORT_CSKYATTRIBUTES_H
 #define LLVM_SUPPORT_CSKYATTRIBUTES_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ELFAttributes.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/CachePruning.h \
b/llvm/include/llvm/Support/CachePruning.h index 17e148830a73f9a..de976636a2381e5 \
                100644
--- a/llvm/include/llvm/Support/CachePruning.h
+++ b/llvm/include/llvm/Support/CachePruning.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_SUPPORT_CACHEPRUNING_H
 #define LLVM_SUPPORT_CACHEPRUNING_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include <chrono>
 #include <optional>
diff --git a/llvm/include/llvm/Support/Caching.h \
b/llvm/include/llvm/Support/Caching.h index 4fa57cc92e51f7c..3182df35b357f3c 100644
--- a/llvm/include/llvm/Support/Caching.h
+++ b/llvm/include/llvm/Support/Caching.h
@@ -15,6 +15,7 @@
 #ifndef LLVM_SUPPORT_CACHING_H
 #define LLVM_SUPPORT_CACHING_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/CodeGenCoverage.h \
b/llvm/include/llvm/Support/CodeGenCoverage.h index 2acdd6a36a514c7..218fdd90ed81721 \
                100644
--- a/llvm/include/llvm/Support/CodeGenCoverage.h
+++ b/llvm/include/llvm/Support/CodeGenCoverage.h
@@ -12,6 +12,7 @@
 #define LLVM_SUPPORT_CODEGENCOVERAGE_H
 
 #include "llvm/ADT/BitVector.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class MemoryBuffer;
diff --git a/llvm/include/llvm/Support/CommandLine.h \
b/llvm/include/llvm/Support/CommandLine.h index d2079fead66808c..4ed41480ba54ddb \
                100644
--- a/llvm/include/llvm/Support/CommandLine.h
+++ b/llvm/include/llvm/Support/CommandLine.h
@@ -27,6 +27,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/Twine.h"
 #include "llvm/ADT/iterator_range.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/ManagedStatic.h"
 #include "llvm/Support/StringSaver.h"
diff --git a/llvm/include/llvm/Support/Compression.h \
b/llvm/include/llvm/Support/Compression.h index c3ba3274d6ed87e..a144443345d8ed6 \
                100644
--- a/llvm/include/llvm/Support/Compression.h
+++ b/llvm/include/llvm/Support/Compression.h
@@ -14,6 +14,7 @@
 #define LLVM_SUPPORT_COMPRESSION_H
 
 #include "llvm/ADT/ArrayRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/ConvertEBCDIC.h \
b/llvm/include/llvm/Support/ConvertEBCDIC.h index ea761b31e022b74..2ec7404198ce787 \
                100644
--- a/llvm/include/llvm/Support/ConvertEBCDIC.h
+++ b/llvm/include/llvm/Support/ConvertEBCDIC.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <system_error>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/CrashRecoveryContext.h \
b/llvm/include/llvm/Support/CrashRecoveryContext.h index \
                26ddf97b3ef02ec..5374618f4b669a7 100644
--- a/llvm/include/llvm/Support/CrashRecoveryContext.h
+++ b/llvm/include/llvm/Support/CrashRecoveryContext.h
@@ -10,6 +10,7 @@
 #define LLVM_SUPPORT_CRASHRECOVERYCONTEXT_H
 
 #include "llvm/ADT/STLFunctionalExtras.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class CrashRecoveryContextCleanup;
diff --git a/llvm/include/llvm/Support/DJB.h b/llvm/include/llvm/Support/DJB.h
index 8a04a324a5dc6cc..b0826927f5afca6 100644
--- a/llvm/include/llvm/Support/DJB.h
+++ b/llvm/include/llvm/Support/DJB.h
@@ -14,6 +14,7 @@
 #define LLVM_SUPPORT_DJB_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Support/DOTGraphTraits.h \
b/llvm/include/llvm/Support/DOTGraphTraits.h index ffa9abe328c830b..0ffd36f699308c3 \
                100644
--- a/llvm/include/llvm/Support/DOTGraphTraits.h
+++ b/llvm/include/llvm/Support/DOTGraphTraits.h
@@ -16,6 +16,7 @@
 #ifndef LLVM_SUPPORT_DOTGRAPHTRAITS_H
 #define LLVM_SUPPORT_DOTGRAPHTRAITS_H
 
+#include "llvm/Support/Compiler.h"
 #include <string>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/DataExtractor.h \
b/llvm/include/llvm/Support/DataExtractor.h index f4f5905d4bccd61..c3c0c5dce035761 \
                100644
--- a/llvm/include/llvm/Support/DataExtractor.h
+++ b/llvm/include/llvm/Support/DataExtractor.h
@@ -10,6 +10,7 @@
 #define LLVM_SUPPORT_DATAEXTRACTOR_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 #include "llvm/Support/Error.h"
 
diff --git a/llvm/include/llvm/Support/DebugCounter.h \
b/llvm/include/llvm/Support/DebugCounter.h index 9fa4620ade3c8ff..b61c1cfa78ae9e8 \
                100644
--- a/llvm/include/llvm/Support/DebugCounter.h
+++ b/llvm/include/llvm/Support/DebugCounter.h
@@ -46,6 +46,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/UniqueVector.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include <string>
 
diff --git a/llvm/include/llvm/Support/DivisionByConstantInfo.h \
b/llvm/include/llvm/Support/DivisionByConstantInfo.h index \
                caa0b35e7144757..3c172ca4ba9481e 100644
--- a/llvm/include/llvm/Support/DivisionByConstantInfo.h
+++ b/llvm/include/llvm/Support/DivisionByConstantInfo.h
@@ -14,6 +14,7 @@
 #define LLVM_SUPPORT_DIVISIONBYCONSTANTINFO_H
 
 #include "llvm/ADT/APInt.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Support/Duration.h \
b/llvm/include/llvm/Support/Duration.h index a5a0e2a3357aa8c..ab340627139647a 100644
--- a/llvm/include/llvm/Support/Duration.h
+++ b/llvm/include/llvm/Support/Duration.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_SUPPORT_DURATION_H
 #define LLVM_SUPPORT_DURATION_H
 
+#include "llvm/Support/Compiler.h"
 #include <chrono>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/ELFAttributeParser.h \
b/llvm/include/llvm/Support/ELFAttributeParser.h index \
                75ed82b3f683976..cf8e2e9f9888074 100644
--- a/llvm/include/llvm/Support/ELFAttributeParser.h
+++ b/llvm/include/llvm/Support/ELFAttributeParser.h
@@ -11,6 +11,7 @@
 
 #include "ELFAttributes.h"
 #include "llvm/ADT/ArrayRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataExtractor.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/Error.h"
diff --git a/llvm/include/llvm/Support/ELFAttributes.h \
b/llvm/include/llvm/Support/ELFAttributes.h index 295d0f46698124c..e2abe6537385286 \
                100644
--- a/llvm/include/llvm/Support/ELFAttributes.h
+++ b/llvm/include/llvm/Support/ELFAttributes.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/EndianStream.h \
b/llvm/include/llvm/Support/EndianStream.h index 8ff87d23e83b145..439c27b8f89a9ef \
                100644
--- a/llvm/include/llvm/Support/EndianStream.h
+++ b/llvm/include/llvm/Support/EndianStream.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/MathExtras.h"
 #include "llvm/Support/raw_ostream.h"
diff --git a/llvm/include/llvm/Support/ErrorOr.h \
b/llvm/include/llvm/Support/ErrorOr.h index 97c7abe1f20c5e1..cc26a6b1033d166 100644
--- a/llvm/include/llvm/Support/ErrorOr.h
+++ b/llvm/include/llvm/Support/ErrorOr.h
@@ -16,6 +16,7 @@
 #define LLVM_SUPPORT_ERROROR_H
 
 #include "llvm/Support/AlignOf.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <system_error>
 #include <type_traits>
diff --git a/llvm/include/llvm/Support/FileCollector.h \
b/llvm/include/llvm/Support/FileCollector.h index 232dc8658aa3828..00a492b91eec2fa \
                100644
--- a/llvm/include/llvm/Support/FileCollector.h
+++ b/llvm/include/llvm/Support/FileCollector.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringSet.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/VirtualFileSystem.h"
 #include <mutex>
 #include <string>
diff --git a/llvm/include/llvm/Support/FileOutputBuffer.h \
b/llvm/include/llvm/Support/FileOutputBuffer.h index d4b73522115dbf5..ca59f8ec696dacb \
                100644
--- a/llvm/include/llvm/Support/FileOutputBuffer.h
+++ b/llvm/include/llvm/Support/FileOutputBuffer.h
@@ -14,6 +14,7 @@
 #define LLVM_SUPPORT_FILEOUTPUTBUFFER_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 #include "llvm/Support/Error.h"
 
diff --git a/llvm/include/llvm/Support/FileSystem.h \
b/llvm/include/llvm/Support/FileSystem.h index 033482977a105ca..874cf1352b60f3d \
                100644
--- a/llvm/include/llvm/Support/FileSystem.h
+++ b/llvm/include/llvm/Support/FileSystem.h
@@ -30,6 +30,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/Twine.h"
 #include "llvm/Config/llvm-config.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Chrono.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/ErrorHandling.h"
diff --git a/llvm/include/llvm/Support/FileSystem/UniqueID.h \
b/llvm/include/llvm/Support/FileSystem/UniqueID.h index \
                0d5367236e8dcfc..ef3f2597393d772 100644
--- a/llvm/include/llvm/Support/FileSystem/UniqueID.h
+++ b/llvm/include/llvm/Support/FileSystem/UniqueID.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/DenseMapInfo.h"
 #include "llvm/ADT/Hashing.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <utility>
 
diff --git a/llvm/include/llvm/Support/FileUtilities.h \
b/llvm/include/llvm/Support/FileUtilities.h index 9707724d631708b..0fd172732251cab \
                100644
--- a/llvm/include/llvm/Support/FileUtilities.h
+++ b/llvm/include/llvm/Support/FileUtilities.h
@@ -15,6 +15,7 @@
 #define LLVM_SUPPORT_FILEUTILITIES_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/FileSystem.h"
 
diff --git a/llvm/include/llvm/Support/Format.h b/llvm/include/llvm/Support/Format.h
index 89b6ae35ba5de3f..b6900267c0de8ab 100644
--- a/llvm/include/llvm/Support/Format.h
+++ b/llvm/include/llvm/Support/Format.h
@@ -25,6 +25,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 #include <cassert>
 #include <cstdio>
diff --git a/llvm/include/llvm/Support/FormatAdapters.h \
b/llvm/include/llvm/Support/FormatAdapters.h index 495205d11748b4e..7a6fa97edaa01e4 \
                100644
--- a/llvm/include/llvm/Support/FormatAdapters.h
+++ b/llvm/include/llvm/Support/FormatAdapters.h
@@ -10,6 +10,7 @@
 #define LLVM_SUPPORT_FORMATADAPTERS_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/FormatCommon.h"
 #include "llvm/Support/FormatVariadicDetails.h"
diff --git a/llvm/include/llvm/Support/FormatCommon.h \
b/llvm/include/llvm/Support/FormatCommon.h index 3c119d12529aeed..337243eae1212ef \
                100644
--- a/llvm/include/llvm/Support/FormatCommon.h
+++ b/llvm/include/llvm/Support/FormatCommon.h
@@ -10,6 +10,7 @@
 #define LLVM_SUPPORT_FORMATCOMMON_H
 
 #include "llvm/ADT/SmallString.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/FormatVariadicDetails.h"
 #include "llvm/Support/raw_ostream.h"
 
diff --git a/llvm/include/llvm/Support/FormatProviders.h \
b/llvm/include/llvm/Support/FormatProviders.h index aa0773847161c12..1b916d493e21ff3 \
                100644
--- a/llvm/include/llvm/Support/FormatProviders.h
+++ b/llvm/include/llvm/Support/FormatProviders.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/StringSwitch.h"
 #include "llvm/ADT/Twine.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/FormatVariadicDetails.h"
 #include "llvm/Support/NativeFormatting.h"
 
diff --git a/llvm/include/llvm/Support/FormatVariadic.h \
b/llvm/include/llvm/Support/FormatVariadic.h index ddd80d89f1cddd8..3ac46de25a714da \
                100644
--- a/llvm/include/llvm/Support/FormatVariadic.h
+++ b/llvm/include/llvm/Support/FormatVariadic.h
@@ -30,6 +30,7 @@
 #include "llvm/ADT/SmallString.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/FormatCommon.h"
 #include "llvm/Support/FormatProviders.h"
 #include "llvm/Support/FormatVariadicDetails.h"
diff --git a/llvm/include/llvm/Support/FormatVariadicDetails.h \
b/llvm/include/llvm/Support/FormatVariadicDetails.h index \
                068c327df396781..3f0938f73bca7ae 100644
--- a/llvm/include/llvm/Support/FormatVariadicDetails.h
+++ b/llvm/include/llvm/Support/FormatVariadicDetails.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/STLExtras.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 
 #include <type_traits>
diff --git a/llvm/include/llvm/Support/FormattedStream.h \
b/llvm/include/llvm/Support/FormattedStream.h index 5f937cfa798408a..218c8def4872769 \
                100644
--- a/llvm/include/llvm/Support/FormattedStream.h
+++ b/llvm/include/llvm/Support/FormattedStream.h
@@ -15,6 +15,7 @@
 #define LLVM_SUPPORT_FORMATTEDSTREAM_H
 
 #include "llvm/ADT/SmallString.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 #include <utility>
 
diff --git a/llvm/include/llvm/Support/GenericDomTree.h \
b/llvm/include/llvm/Support/GenericDomTree.h index 62186a368e964df..e9a97beaec60732 \
                100644
--- a/llvm/include/llvm/Support/GenericDomTree.h
+++ b/llvm/include/llvm/Support/GenericDomTree.h
@@ -31,6 +31,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/Support/CFGDiff.h"
 #include "llvm/Support/CFGUpdate.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 #include <algorithm>
 #include <cassert>
diff --git a/llvm/include/llvm/Support/GenericDomTreeConstruction.h \
b/llvm/include/llvm/Support/GenericDomTreeConstruction.h index \
                2e7716cb0b4b88d..262ce60e4eee384 100644
--- a/llvm/include/llvm/Support/GenericDomTreeConstruction.h
+++ b/llvm/include/llvm/Support/GenericDomTreeConstruction.h
@@ -42,6 +42,7 @@
 #include "llvm/ADT/DepthFirstIterator.h"
 #include "llvm/ADT/PointerIntPair.h"
 #include "llvm/ADT/SmallPtrSet.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/GenericDomTree.h"
 #include <optional>
diff --git a/llvm/include/llvm/Support/GenericIteratedDominanceFrontier.h \
b/llvm/include/llvm/Support/GenericIteratedDominanceFrontier.h index \
                5723fb58edcd826..dfb4179cb62f1cc 100644
--- a/llvm/include/llvm/Support/GenericIteratedDominanceFrontier.h
+++ b/llvm/include/llvm/Support/GenericIteratedDominanceFrontier.h
@@ -26,6 +26,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/GenericDomTree.h"
 #include <queue>
 
diff --git a/llvm/include/llvm/Support/GenericLoopInfo.h \
b/llvm/include/llvm/Support/GenericLoopInfo.h index ac4f2d7010b411e..7a35e723a6ce7cf \
                100644
--- a/llvm/include/llvm/Support/GenericLoopInfo.h
+++ b/llvm/include/llvm/Support/GenericLoopInfo.h
@@ -45,6 +45,7 @@
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/SetOperations.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/GenericDomTree.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/GenericLoopInfoImpl.h \
b/llvm/include/llvm/Support/GenericLoopInfoImpl.h index \
                85233d38f0f6db9..f157163c4195628 100644
--- a/llvm/include/llvm/Support/GenericLoopInfoImpl.h
+++ b/llvm/include/llvm/Support/GenericLoopInfoImpl.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/PostOrderIterator.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/SetOperations.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/GenericLoopInfo.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/GlobPattern.h \
b/llvm/include/llvm/Support/GlobPattern.h index 9dda9f6cecf11f3..d9e0fae86a9bcbc \
                100644
--- a/llvm/include/llvm/Support/GlobPattern.h
+++ b/llvm/include/llvm/Support/GlobPattern.h
@@ -15,6 +15,7 @@
 #define LLVM_SUPPORT_GLOBPATTERN_H
 
 #include "llvm/ADT/BitVector.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <optional>
 #include <vector>
diff --git a/llvm/include/llvm/Support/GraphWriter.h \
b/llvm/include/llvm/Support/GraphWriter.h index dfda605365de3c8..b768b95e0af1f15 \
                100644
--- a/llvm/include/llvm/Support/GraphWriter.h
+++ b/llvm/include/llvm/Support/GraphWriter.h
@@ -25,6 +25,7 @@
 #include "llvm/ADT/GraphTraits.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/Twine.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DOTGraphTraits.h"
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/raw_ostream.h"
diff --git a/llvm/include/llvm/Support/HashBuilder.h \
b/llvm/include/llvm/Support/HashBuilder.h index 04a7b2e7dc8ab26..6b3625b9cb71a20 \
                100644
--- a/llvm/include/llvm/Support/HashBuilder.h
+++ b/llvm/include/llvm/Support/HashBuilder.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/Hashing.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/type_traits.h"
 
diff --git a/llvm/include/llvm/Support/InitLLVM.h \
b/llvm/include/llvm/Support/InitLLVM.h index 172d13bf21a5581..b42441d645ba5bd 100644
--- a/llvm/include/llvm/Support/InitLLVM.h
+++ b/llvm/include/llvm/Support/InitLLVM.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/PrettyStackTrace.h"
 #include <optional>
 
diff --git a/llvm/include/llvm/Support/InstructionCost.h \
b/llvm/include/llvm/Support/InstructionCost.h index ada0b8962881d3c..258d6c3a62dc73c \
                100644
--- a/llvm/include/llvm/Support/InstructionCost.h
+++ b/llvm/include/llvm/Support/InstructionCost.h
@@ -18,6 +18,7 @@
 #ifndef LLVM_SUPPORT_INSTRUCTIONCOST_H
 #define LLVM_SUPPORT_INSTRUCTIONCOST_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MathExtras.h"
 #include <limits>
 #include <optional>
diff --git a/llvm/include/llvm/Support/JSON.h b/llvm/include/llvm/Support/JSON.h
index a81881c52d6c960..e87cb01ebcab336 100644
--- a/llvm/include/llvm/Support/JSON.h
+++ b/llvm/include/llvm/Support/JSON.h
@@ -50,6 +50,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/STLFunctionalExtras.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/FormatVariadic.h"
 #include "llvm/Support/raw_ostream.h"
diff --git a/llvm/include/llvm/Support/KnownBits.h \
b/llvm/include/llvm/Support/KnownBits.h index 8462aa11202d5d7..f99788ba6c80461 100644
--- a/llvm/include/llvm/Support/KnownBits.h
+++ b/llvm/include/llvm/Support/KnownBits.h
@@ -15,6 +15,7 @@
 #define LLVM_SUPPORT_KNOWNBITS_H
 
 #include "llvm/ADT/APInt.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/LEB128.h b/llvm/include/llvm/Support/LEB128.h
index a5d367279aefe64..878b04bd14d4d45 100644
--- a/llvm/include/llvm/Support/LEB128.h
+++ b/llvm/include/llvm/Support/LEB128.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_SUPPORT_LEB128_H
 #define LLVM_SUPPORT_LEB128_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/LineIterator.h \
b/llvm/include/llvm/Support/LineIterator.h index fc6871baf99a65d..bae202522557ffb \
                100644
--- a/llvm/include/llvm/Support/LineIterator.h
+++ b/llvm/include/llvm/Support/LineIterator.h
@@ -10,6 +10,7 @@
 #define LLVM_SUPPORT_LINEITERATOR_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 #include "llvm/Support/MemoryBufferRef.h"
 #include <iterator>
diff --git a/llvm/include/llvm/Support/LockFileManager.h \
b/llvm/include/llvm/Support/LockFileManager.h index 92c7ceed6a929ff..af1c77760abacca \
                100644
--- a/llvm/include/llvm/Support/LockFileManager.h
+++ b/llvm/include/llvm/Support/LockFileManager.h
@@ -9,6 +9,7 @@
 #define LLVM_SUPPORT_LOCKFILEMANAGER_H
 
 #include "llvm/ADT/SmallString.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 #include <system_error>
 #include <utility> // for std::pair
diff --git a/llvm/include/llvm/Support/MD5.h b/llvm/include/llvm/Support/MD5.h
index fa2f477261dd905..59dda28760cca72 100644
--- a/llvm/include/llvm/Support/MD5.h
+++ b/llvm/include/llvm/Support/MD5.h
@@ -29,6 +29,7 @@
 #define LLVM_SUPPORT_MD5_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include <array>
 #include <cstdint>
diff --git a/llvm/include/llvm/Support/MSP430AttributeParser.h \
b/llvm/include/llvm/Support/MSP430AttributeParser.h index \
                bc9b214944708f0..2fa350872237961 100644
--- a/llvm/include/llvm/Support/MSP430AttributeParser.h
+++ b/llvm/include/llvm/Support/MSP430AttributeParser.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_SUPPORT_MSP430ATTRIBUTEPARSER_H
 #define LLVM_SUPPORT_MSP430ATTRIBUTEPARSER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ELFAttributeParser.h"
 #include "llvm/Support/MSP430Attributes.h"
 
diff --git a/llvm/include/llvm/Support/MSP430Attributes.h \
b/llvm/include/llvm/Support/MSP430Attributes.h index fccd65e844c35d9..ebec10d15f02174 \
                100644
--- a/llvm/include/llvm/Support/MSP430Attributes.h
+++ b/llvm/include/llvm/Support/MSP430Attributes.h
@@ -18,6 +18,7 @@
 #ifndef LLVM_SUPPORT_MSP430ATTRIBUTES_H
 #define LLVM_SUPPORT_MSP430ATTRIBUTES_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ELFAttributes.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/MSVCErrorWorkarounds.h \
b/llvm/include/llvm/Support/MSVCErrorWorkarounds.h index \
                bf983dc1e406b9c..5424b2fd22c5b76 100644
--- a/llvm/include/llvm/Support/MSVCErrorWorkarounds.h
+++ b/llvm/include/llvm/Support/MSVCErrorWorkarounds.h
@@ -18,6 +18,7 @@
 #ifndef LLVM_SUPPORT_MSVCERRORWORKAROUNDS_H
 #define LLVM_SUPPORT_MSVCERRORWORKAROUNDS_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/MemoryBuffer.h \
b/llvm/include/llvm/Support/MemoryBuffer.h index b3477f1db0e9a6c..0d5c1d91abb44bd \
                100644
--- a/llvm/include/llvm/Support/MemoryBuffer.h
+++ b/llvm/include/llvm/Support/MemoryBuffer.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/Twine.h"
 #include "llvm/Support/Alignment.h"
 #include "llvm/Support/CBindingWrapping.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorOr.h"
 #include "llvm/Support/MemoryBufferRef.h"
 #include <cstddef>
diff --git a/llvm/include/llvm/Support/MemoryBufferRef.h \
b/llvm/include/llvm/Support/MemoryBufferRef.h index b38a1f3b65651af..994654c783cb0f8 \
                100644
--- a/llvm/include/llvm/Support/MemoryBufferRef.h
+++ b/llvm/include/llvm/Support/MemoryBufferRef.h
@@ -14,6 +14,7 @@
 #define LLVM_SUPPORT_MEMORYBUFFERREF_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Support/ModRef.h b/llvm/include/llvm/Support/ModRef.h
index 7687280111a1f86..daff3fda0941cc5 100644
--- a/llvm/include/llvm/Support/ModRef.h
+++ b/llvm/include/llvm/Support/ModRef.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/BitmaskEnum.h"
 #include "llvm/ADT/Sequence.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/Mutex.h b/llvm/include/llvm/Support/Mutex.h
index d61e3fd96efbecb..d835ea50ecc2b9b 100644
--- a/llvm/include/llvm/Support/Mutex.h
+++ b/llvm/include/llvm/Support/Mutex.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_SUPPORT_MUTEX_H
 #define LLVM_SUPPORT_MUTEX_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Threading.h"
 #include <cassert>
 #include <mutex>
diff --git a/llvm/include/llvm/Support/OnDiskHashTable.h \
b/llvm/include/llvm/Support/OnDiskHashTable.h index bb90d8fc3ac7d0f..ad5a94c15e3a157 \
                100644
--- a/llvm/include/llvm/Support/OnDiskHashTable.h
+++ b/llvm/include/llvm/Support/OnDiskHashTable.h
@@ -15,6 +15,7 @@
 
 #include "llvm/Support/Alignment.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 #include "llvm/Support/EndianStream.h"
 #include "llvm/Support/MathExtras.h"
diff --git a/llvm/include/llvm/Support/OptimizedStructLayout.h \
b/llvm/include/llvm/Support/OptimizedStructLayout.h index \
                619990d132beba6..f4574da70a3882d 100644
--- a/llvm/include/llvm/Support/OptimizedStructLayout.h
+++ b/llvm/include/llvm/Support/OptimizedStructLayout.h
@@ -37,6 +37,7 @@
 
 #include "llvm/Support/Alignment.h"
 #include "llvm/ADT/ArrayRef.h"
+#include "llvm/Support/Compiler.h"
 #include <utility>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/PGOOptions.h \
b/llvm/include/llvm/Support/PGOOptions.h index 35670c457745a5c..8214b844ab04508 \
                100644
--- a/llvm/include/llvm/Support/PGOOptions.h
+++ b/llvm/include/llvm/Support/PGOOptions.h
@@ -15,6 +15,7 @@
 #define LLVM_SUPPORT_PGOOPTIONS_H
 
 #include "llvm/ADT/IntrusiveRefCntPtr.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/Parallel.h \
b/llvm/include/llvm/Support/Parallel.h index 8170da98f15a8c4..701246ad570ad52 100644
--- a/llvm/include/llvm/Support/Parallel.h
+++ b/llvm/include/llvm/Support/Parallel.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/Config/llvm-config.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/MathExtras.h"
 #include "llvm/Support/Threading.h"
diff --git a/llvm/include/llvm/Support/Path.h b/llvm/include/llvm/Support/Path.h
index ce69f32b6cc81ba..d5782b10709b624 100644
--- a/llvm/include/llvm/Support/Path.h
+++ b/llvm/include/llvm/Support/Path.h
@@ -17,6 +17,7 @@
 
 #include "llvm/ADT/Twine.h"
 #include "llvm/ADT/iterator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 #include <iterator>
 
diff --git a/llvm/include/llvm/Support/PerThreadBumpPtrAllocator.h \
b/llvm/include/llvm/Support/PerThreadBumpPtrAllocator.h index \
                f94d18f62e9abd7..8ea7a17655bb02b 100644
--- a/llvm/include/llvm/Support/PerThreadBumpPtrAllocator.h
+++ b/llvm/include/llvm/Support/PerThreadBumpPtrAllocator.h
@@ -10,6 +10,7 @@
 #define LLVM_SUPPORT_PERTHREADBUMPPTRALLOCATOR_H
 
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Parallel.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/PointerLikeTypeTraits.h \
b/llvm/include/llvm/Support/PointerLikeTypeTraits.h index \
                1b15f930bd87d97..78d47e724151930 100644
--- a/llvm/include/llvm/Support/PointerLikeTypeTraits.h
+++ b/llvm/include/llvm/Support/PointerLikeTypeTraits.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_SUPPORT_POINTERLIKETYPETRAITS_H
 #define LLVM_SUPPORT_POINTERLIKETYPETRAITS_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 #include <cassert>
 #include <type_traits>
diff --git a/llvm/include/llvm/Support/Printable.h \
b/llvm/include/llvm/Support/Printable.h index 8e76f01f6ba27f9..12e2129c637d495 100644
--- a/llvm/include/llvm/Support/Printable.h
+++ b/llvm/include/llvm/Support/Printable.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_SUPPORT_PRINTABLE_H
 #define LLVM_SUPPORT_PRINTABLE_H
 
+#include "llvm/Support/Compiler.h"
 #include <functional>
 #include <utility>
 
diff --git a/llvm/include/llvm/Support/Process.h \
b/llvm/include/llvm/Support/Process.h index 83f1fcd8b2abca5..2e2d0a1595511fb 100644
--- a/llvm/include/llvm/Support/Process.h
+++ b/llvm/include/llvm/Support/Process.h
@@ -25,6 +25,7 @@
 #define LLVM_SUPPORT_PROCESS_H
 
 #include "llvm/Support/Chrono.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/Program.h"
diff --git a/llvm/include/llvm/Support/Program.h \
b/llvm/include/llvm/Support/Program.h index 4c1133e44a21c91..c7a541e46e8ba99 100644
--- a/llvm/include/llvm/Support/Program.h
+++ b/llvm/include/llvm/Support/Program.h
@@ -16,6 +16,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Config/llvm-config.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorOr.h"
 #include "llvm/Support/FileSystem.h"
 #include <chrono>
diff --git a/llvm/include/llvm/Support/RISCVAttributeParser.h \
b/llvm/include/llvm/Support/RISCVAttributeParser.h index \
                305adffbe851e79..5ff943af96e0eec 100644
--- a/llvm/include/llvm/Support/RISCVAttributeParser.h
+++ b/llvm/include/llvm/Support/RISCVAttributeParser.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_SUPPORT_RISCVATTRIBUTEPARSER_H
 #define LLVM_SUPPORT_RISCVATTRIBUTEPARSER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ELFAttributeParser.h"
 #include "llvm/Support/RISCVAttributes.h"
 
diff --git a/llvm/include/llvm/Support/RISCVAttributes.h \
b/llvm/include/llvm/Support/RISCVAttributes.h index a8ce8f4d8daf452..781e5ff383ad448 \
                100644
--- a/llvm/include/llvm/Support/RISCVAttributes.h
+++ b/llvm/include/llvm/Support/RISCVAttributes.h
@@ -17,6 +17,7 @@
 #ifndef LLVM_SUPPORT_RISCVATTRIBUTES_H
 #define LLVM_SUPPORT_RISCVATTRIBUTES_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ELFAttributes.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/RISCVISAInfo.h \
b/llvm/include/llvm/Support/RISCVISAInfo.h index 6eb085c32b5b2fd..9870bfc2bcf30d4 \
                100644
--- a/llvm/include/llvm/Support/RISCVISAInfo.h
+++ b/llvm/include/llvm/Support/RISCVISAInfo.h
@@ -10,6 +10,7 @@
 #define LLVM_SUPPORT_RISCVISAINFO_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 #include <map>
diff --git a/llvm/include/llvm/Support/RWMutex.h \
b/llvm/include/llvm/Support/RWMutex.h index 984487f94c693cf..e6309fccbf7bac4 100644
--- a/llvm/include/llvm/Support/RWMutex.h
+++ b/llvm/include/llvm/Support/RWMutex.h
@@ -14,6 +14,7 @@
 #define LLVM_SUPPORT_RWMUTEX_H
 
 #include "llvm/Config/llvm-config.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Threading.h"
 #include <cassert>
 #include <mutex>
diff --git a/llvm/include/llvm/Support/Recycler.h \
b/llvm/include/llvm/Support/Recycler.h index bbd9ae321ae30c6..45ff199f4a0c25f 100644
--- a/llvm/include/llvm/Support/Recycler.h
+++ b/llvm/include/llvm/Support/Recycler.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/ilist.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include <cassert>
 
diff --git a/llvm/include/llvm/Support/RecyclingAllocator.h \
b/llvm/include/llvm/Support/RecyclingAllocator.h index \
                2c29dacfe21272d..6be387f38b3555d 100644
--- a/llvm/include/llvm/Support/RecyclingAllocator.h
+++ b/llvm/include/llvm/Support/RecyclingAllocator.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_SUPPORT_RECYCLINGALLOCATOR_H
 #define LLVM_SUPPORT_RECYCLINGALLOCATOR_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Recycler.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/Regex.h b/llvm/include/llvm/Support/Regex.h
index ae4b9516f194e3a..0cac08055936c9d 100644
--- a/llvm/include/llvm/Support/Regex.h
+++ b/llvm/include/llvm/Support/Regex.h
@@ -17,6 +17,7 @@
 #define LLVM_SUPPORT_REGEX_H
 
 #include "llvm/ADT/BitmaskEnum.h"
+#include "llvm/Support/Compiler.h"
 #include <string>
 
 struct llvm_regex;
diff --git a/llvm/include/llvm/Support/SMLoc.h b/llvm/include/llvm/Support/SMLoc.h
index 60b052a3b86351a..d71258ebf993924 100644
--- a/llvm/include/llvm/Support/SMLoc.h
+++ b/llvm/include/llvm/Support/SMLoc.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_SUPPORT_SMLOC_H
 #define LLVM_SUPPORT_SMLOC_H
 
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <optional>
 
diff --git a/llvm/include/llvm/Support/SMTAPI.h b/llvm/include/llvm/Support/SMTAPI.h
index 9389c96956dd137..970df1653adf2fc 100644
--- a/llvm/include/llvm/Support/SMTAPI.h
+++ b/llvm/include/llvm/Support/SMTAPI.h
@@ -17,6 +17,7 @@
 #include "llvm/ADT/APFloat.h"
 #include "llvm/ADT/APSInt.h"
 #include "llvm/ADT/FoldingSet.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 #include <memory>
 
diff --git a/llvm/include/llvm/Support/SaveAndRestore.h \
b/llvm/include/llvm/Support/SaveAndRestore.h index 06cfdfffa0b7fe2..a137b04fceae3c0 \
                100644
--- a/llvm/include/llvm/Support/SaveAndRestore.h
+++ b/llvm/include/llvm/Support/SaveAndRestore.h
@@ -15,6 +15,7 @@
 #ifndef LLVM_SUPPORT_SAVEANDRESTORE_H
 #define LLVM_SUPPORT_SAVEANDRESTORE_H
 
+#include "llvm/Support/Compiler.h"
 #include <utility>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/ScaledNumber.h \
b/llvm/include/llvm/Support/ScaledNumber.h index faf3ce351c3e522..4804f58c7a24ac3 \
                100644
--- a/llvm/include/llvm/Support/ScaledNumber.h
+++ b/llvm/include/llvm/Support/ScaledNumber.h
@@ -21,6 +21,7 @@
 #ifndef LLVM_SUPPORT_SCALEDNUMBER_H
 #define LLVM_SUPPORT_SCALEDNUMBER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MathExtras.h"
 #include <algorithm>
 #include <cstdint>
diff --git a/llvm/include/llvm/Support/ScopedPrinter.h \
b/llvm/include/llvm/Support/ScopedPrinter.h index aaaed3f5ceac62a..a5b9c0308357ebd \
                100644
--- a/llvm/include/llvm/Support/ScopedPrinter.h
+++ b/llvm/include/llvm/Support/ScopedPrinter.h
@@ -14,6 +14,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringExtras.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/JSON.h"
diff --git a/llvm/include/llvm/Support/SmallVectorMemoryBuffer.h \
b/llvm/include/llvm/Support/SmallVectorMemoryBuffer.h index \
                f7f2d4e54e705d6..a730ce8cce223b9 100644
--- a/llvm/include/llvm/Support/SmallVectorMemoryBuffer.h
+++ b/llvm/include/llvm/Support/SmallVectorMemoryBuffer.h
@@ -15,6 +15,7 @@
 #define LLVM_SUPPORT_SMALLVECTORMEMORYBUFFER_H
 
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/Support/raw_ostream.h"
 
diff --git a/llvm/include/llvm/Support/SourceMgr.h \
b/llvm/include/llvm/Support/SourceMgr.h index eced4574c82e152..b01ece4840090cf 100644
--- a/llvm/include/llvm/Support/SourceMgr.h
+++ b/llvm/include/llvm/Support/SourceMgr.h
@@ -16,6 +16,7 @@
 #define LLVM_SUPPORT_SOURCEMGR_H
 
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/Support/SMLoc.h"
 #include <vector>
diff --git a/llvm/include/llvm/Support/SpecialCaseList.h \
b/llvm/include/llvm/Support/SpecialCaseList.h index b6d1b56a09623cc..77b0af06fb588ba \
                100644
--- a/llvm/include/llvm/Support/SpecialCaseList.h
+++ b/llvm/include/llvm/Support/SpecialCaseList.h
@@ -53,6 +53,7 @@
 #define LLVM_SUPPORT_SPECIALCASELIST_H
 
 #include "llvm/ADT/StringMap.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Regex.h"
 #include <memory>
 #include <string>
diff --git a/llvm/include/llvm/Support/StringSaver.h \
b/llvm/include/llvm/Support/StringSaver.h index fa9db30eae30c90..6d911c9b65cb5f7 \
                100644
--- a/llvm/include/llvm/Support/StringSaver.h
+++ b/llvm/include/llvm/Support/StringSaver.h
@@ -13,6 +13,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/Twine.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Support/SuffixTree.h \
b/llvm/include/llvm/Support/SuffixTree.h index 4940fbbf308d8b7..7ab495e78e73b0d \
                100644
--- a/llvm/include/llvm/Support/SuffixTree.h
+++ b/llvm/include/llvm/Support/SuffixTree.h
@@ -34,6 +34,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/SuffixTreeNode.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/SuffixTreeNode.h \
b/llvm/include/llvm/Support/SuffixTreeNode.h index 7d0d1cf0c58b95f..96c1588782a2b02 \
                100644
--- a/llvm/include/llvm/Support/SuffixTreeNode.h
+++ b/llvm/include/llvm/Support/SuffixTreeNode.h
@@ -26,6 +26,7 @@
 #ifndef LLVM_SUPPORT_SUFFIXTREE_NODE_H
 #define LLVM_SUPPORT_SUFFIXTREE_NODE_H
 #include "llvm/ADT/DenseMap.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Support/TarWriter.h \
b/llvm/include/llvm/Support/TarWriter.h index 48d810ac65e3514..706324a603da502 100644
--- a/llvm/include/llvm/Support/TarWriter.h
+++ b/llvm/include/llvm/Support/TarWriter.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/StringSet.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/raw_ostream.h"
 
diff --git a/llvm/include/llvm/Support/ThreadPool.h \
b/llvm/include/llvm/Support/ThreadPool.h index 5e67a312d5c7b57..d25347f0d7d3809 \
                100644
--- a/llvm/include/llvm/Support/ThreadPool.h
+++ b/llvm/include/llvm/Support/ThreadPool.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/Config/llvm-config.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/RWMutex.h"
 #include "llvm/Support/Threading.h"
 #include "llvm/Support/thread.h"
diff --git a/llvm/include/llvm/Support/TimeProfiler.h \
b/llvm/include/llvm/Support/TimeProfiler.h index 454a65f70231f45..1305bcf6c0fab5e \
                100644
--- a/llvm/include/llvm/Support/TimeProfiler.h
+++ b/llvm/include/llvm/Support/TimeProfiler.h
@@ -77,6 +77,7 @@
 #define LLVM_SUPPORT_TIMEPROFILER_H
 
 #include "llvm/ADT/STLFunctionalExtras.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/Timer.h b/llvm/include/llvm/Support/Timer.h
index 1a32832b6c65366..4edf63e42bca67c 100644
--- a/llvm/include/llvm/Support/Timer.h
+++ b/llvm/include/llvm/Support/Timer.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 #include <cassert>
 #include <memory>
diff --git a/llvm/include/llvm/Support/ToolOutputFile.h \
b/llvm/include/llvm/Support/ToolOutputFile.h index e3fb83fdfd2c3f9..8bf27c5dff5872a \
                100644
--- a/llvm/include/llvm/Support/ToolOutputFile.h
+++ b/llvm/include/llvm/Support/ToolOutputFile.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_SUPPORT_TOOLOUTPUTFILE_H
 #define LLVM_SUPPORT_TOOLOUTPUTFILE_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 #include <optional>
 
diff --git a/llvm/include/llvm/Support/Unicode.h \
b/llvm/include/llvm/Support/Unicode.h index 861548728d4f854..6c343245c803c3c 100644
--- a/llvm/include/llvm/Support/Unicode.h
+++ b/llvm/include/llvm/Support/Unicode.h
@@ -15,6 +15,7 @@
 #define LLVM_SUPPORT_UNICODE_H
 
 #include "llvm/ADT/SmallString.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 #include <string>
 
diff --git a/llvm/include/llvm/Support/VersionTuple.h \
b/llvm/include/llvm/Support/VersionTuple.h index 828a6db54708dfa..c40cb80ece7efa7 \
                100644
--- a/llvm/include/llvm/Support/VersionTuple.h
+++ b/llvm/include/llvm/Support/VersionTuple.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/DenseMapInfo.h"
 #include "llvm/ADT/Hashing.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include <optional>
 #include <string>
diff --git a/llvm/include/llvm/Support/VirtualFileSystem.h \
b/llvm/include/llvm/Support/VirtualFileSystem.h index \
                697343c7e763e57..879399a998f733d 100644
--- a/llvm/include/llvm/Support/VirtualFileSystem.h
+++ b/llvm/include/llvm/Support/VirtualFileSystem.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/STLFunctionalExtras.h"
 #include "llvm/Support/Chrono.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorOr.h"
 #include "llvm/Support/Errc.h"
 #include "llvm/Support/FileSystem.h"
diff --git a/llvm/include/llvm/Support/Win64EH.h \
b/llvm/include/llvm/Support/Win64EH.h index e84fd6d72bedbeb..f7c06d6c77bc3f5 100644
--- a/llvm/include/llvm/Support/Win64EH.h
+++ b/llvm/include/llvm/Support/Win64EH.h
@@ -15,6 +15,7 @@
 #ifndef LLVM_SUPPORT_WIN64EH_H
 #define LLVM_SUPPORT_WIN64EH_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 #include "llvm/Support/Endian.h"
 
diff --git a/llvm/include/llvm/Support/WindowsError.h \
b/llvm/include/llvm/Support/WindowsError.h index 19540522412438b..12624a2fab81e0b \
                100644
--- a/llvm/include/llvm/Support/WindowsError.h
+++ b/llvm/include/llvm/Support/WindowsError.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_SUPPORT_WINDOWSERROR_H
 #define LLVM_SUPPORT_WINDOWSERROR_H
 
+#include "llvm/Support/Compiler.h"
 #include <system_error>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/WithColor.h \
b/llvm/include/llvm/Support/WithColor.h index 205400592847661..5838013f2b1fd93 100644
--- a/llvm/include/llvm/Support/WithColor.h
+++ b/llvm/include/llvm/Support/WithColor.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_SUPPORT_WITHCOLOR_H
 #define LLVM_SUPPORT_WITHCOLOR_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h \
b/llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h index \
                169b8e97986e154..43d73a1b9e78bf4 100644
--- a/llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h
+++ b/llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h
@@ -16,6 +16,7 @@
 #ifndef LLVM_SUPPORT_X86DISASSEMBLERDECODERCOMMON_H
 #define LLVM_SUPPORT_X86DISASSEMBLERDECODERCOMMON_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/YAMLParser.h \
b/llvm/include/llvm/Support/YAMLParser.h index f4767641647c217..5280c0f9b94151a \
                100644
--- a/llvm/include/llvm/Support/YAMLParser.h
+++ b/llvm/include/llvm/Support/YAMLParser.h
@@ -38,6 +38,7 @@
 
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/SMLoc.h"
 #include "llvm/Support/SourceMgr.h"
 #include <cassert>
diff --git a/llvm/include/llvm/Support/YAMLTraits.h \
b/llvm/include/llvm/Support/YAMLTraits.h index 3ed29821fa8f034..0ed4d02e319d01f \
                100644
--- a/llvm/include/llvm/Support/YAMLTraits.h
+++ b/llvm/include/llvm/Support/YAMLTraits.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/Twine.h"
 #include "llvm/Support/AlignOf.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Endian.h"
 #include "llvm/Support/SMLoc.h"
 #include "llvm/Support/SourceMgr.h"
diff --git a/llvm/include/llvm/Support/circular_raw_ostream.h \
b/llvm/include/llvm/Support/circular_raw_ostream.h index \
                17fb8fa0e476f67..859a575c362a7b8 100644
--- a/llvm/include/llvm/Support/circular_raw_ostream.h
+++ b/llvm/include/llvm/Support/circular_raw_ostream.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_SUPPORT_CIRCULAR_RAW_OSTREAM_H
 #define LLVM_SUPPORT_CIRCULAR_RAW_OSTREAM_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Support/raw_os_ostream.h \
b/llvm/include/llvm/Support/raw_os_ostream.h index c51a94da3a28d2c..3c9f4e94b1efb1b \
                100644
--- a/llvm/include/llvm/Support/raw_os_ostream.h
+++ b/llvm/include/llvm/Support/raw_os_ostream.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_SUPPORT_RAW_OS_OSTREAM_H
 #define LLVM_SUPPORT_RAW_OS_OSTREAM_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 #include <iosfwd>
 
diff --git a/llvm/include/llvm/Support/raw_ostream.h \
b/llvm/include/llvm/Support/raw_ostream.h index 1e01eb9ea19c418..ddbcb8d1c64ac37 \
                100644
--- a/llvm/include/llvm/Support/raw_ostream.h
+++ b/llvm/include/llvm/Support/raw_ostream.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DataTypes.h"
 #include <cassert>
 #include <cstddef>
diff --git a/llvm/include/llvm/Support/thread.h b/llvm/include/llvm/Support/thread.h
index 69c06c050aac5f2..01f7a6049fd0844 100644
--- a/llvm/include/llvm/Support/thread.h
+++ b/llvm/include/llvm/Support/thread.h
@@ -17,6 +17,7 @@
 #define LLVM_SUPPORT_THREAD_H
 
 #include "llvm/Config/llvm-config.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 #ifdef _WIN32
diff --git a/llvm/include/llvm/Support/xxhash.h b/llvm/include/llvm/Support/xxhash.h
index 6fd67ff9ce1c557..7e26fb663047acc 100644
--- a/llvm/include/llvm/Support/xxhash.h
+++ b/llvm/include/llvm/Support/xxhash.h
@@ -40,6 +40,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 uint64_t xxHash64(llvm::StringRef Data);
diff --git a/llvm/include/llvm/TableGen/Error.h b/llvm/include/llvm/TableGen/Error.h
index 2e639224c9c0312..93c1ee002571042 100644
--- a/llvm/include/llvm/TableGen/Error.h
+++ b/llvm/include/llvm/TableGen/Error.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_TABLEGEN_ERROR_H
 #define LLVM_TABLEGEN_ERROR_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/SourceMgr.h"
 #include "llvm/TableGen/Record.h"
 
diff --git a/llvm/include/llvm/TableGen/Main.h b/llvm/include/llvm/TableGen/Main.h
index 4639ec756e9b173..c983da3c9201ab5 100644
--- a/llvm/include/llvm/TableGen/Main.h
+++ b/llvm/include/llvm/TableGen/Main.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_TABLEGEN_MAIN_H
 #define LLVM_TABLEGEN_MAIN_H
 
+#include "llvm/Support/Compiler.h"
 #include <functional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/TableGen/Parser.h \
b/llvm/include/llvm/TableGen/Parser.h index 411259e4033cf01..36771d57eac6b32 100644
--- a/llvm/include/llvm/TableGen/Parser.h
+++ b/llvm/include/llvm/TableGen/Parser.h
@@ -14,6 +14,7 @@
 #define LLVM_TABLEGEN_PARSER_H
 
 #include "llvm/ADT/STLExtras.h"
+#include "llvm/Support/Compiler.h"
 #include <string>
 #include <vector>
 
diff --git a/llvm/include/llvm/TableGen/Record.h \
b/llvm/include/llvm/TableGen/Record.h index b77336a896fc4d7..d6d717c4679c6d9 100644
--- a/llvm/include/llvm/TableGen/Record.h
+++ b/llvm/include/llvm/TableGen/Record.h
@@ -23,6 +23,7 @@
 #include "llvm/ADT/StringExtras.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/SMLoc.h"
 #include "llvm/Support/Timer.h"
diff --git a/llvm/include/llvm/TableGen/SetTheory.h \
b/llvm/include/llvm/TableGen/SetTheory.h index 4cff688164b0c4f..146905451b2711a \
                100644
--- a/llvm/include/llvm/TableGen/SetTheory.h
+++ b/llvm/include/llvm/TableGen/SetTheory.h
@@ -51,6 +51,7 @@
 #include "llvm/ADT/SetVector.h"
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/SMLoc.h"
 #include <map>
 #include <memory>
diff --git a/llvm/include/llvm/TableGen/StringMatcher.h \
b/llvm/include/llvm/TableGen/StringMatcher.h index 795b7a6d41dcc6a..856a3cd7a689613 \
                100644
--- a/llvm/include/llvm/TableGen/StringMatcher.h
+++ b/llvm/include/llvm/TableGen/StringMatcher.h
@@ -14,6 +14,7 @@
 #define LLVM_TABLEGEN_STRINGMATCHER_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <string>
 #include <utility>
 #include <vector>
diff --git a/llvm/include/llvm/TableGen/TableGenBackend.h \
b/llvm/include/llvm/TableGen/TableGenBackend.h index 39f1e14bc950841..560927078e1343c \
                100644
--- a/llvm/include/llvm/TableGen/TableGenBackend.h
+++ b/llvm/include/llvm/TableGen/TableGenBackend.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/ManagedStatic.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Target/CGPassBuilderOption.h \
b/llvm/include/llvm/Target/CGPassBuilderOption.h index \
                bf297ae498b2de5..08969ee7c22a910 100644
--- a/llvm/include/llvm/Target/CGPassBuilderOption.h
+++ b/llvm/include/llvm/Target/CGPassBuilderOption.h
@@ -15,6 +15,7 @@
 #define LLVM_TARGET_CGPASSBUILDEROPTION_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Target/TargetOptions.h"
 #include <optional>
 
diff --git a/llvm/include/llvm/Target/TargetIntrinsicInfo.h \
b/llvm/include/llvm/Target/TargetIntrinsicInfo.h index \
                dc59f11c8d9a136..ef571b15153e7db 100644
--- a/llvm/include/llvm/Target/TargetIntrinsicInfo.h
+++ b/llvm/include/llvm/Target/TargetIntrinsicInfo.h
@@ -14,6 +14,7 @@
 #define LLVM_TARGET_TARGETINTRINSICINFO_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <string>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Target/TargetLoweringObjectFile.h \
b/llvm/include/llvm/Target/TargetLoweringObjectFile.h index \
                0c09cfe684783bf..4ebbf95466c9e37 100644
--- a/llvm/include/llvm/Target/TargetLoweringObjectFile.h
+++ b/llvm/include/llvm/Target/TargetLoweringObjectFile.h
@@ -16,6 +16,7 @@
 
 #include "llvm/MC/MCObjectFileInfo.h"
 #include "llvm/MC/MCRegister.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Target/TargetMachine.h \
b/llvm/include/llvm/Target/TargetMachine.h index b6ba36fb09b1bce..7599aa7ff492d9f \
                100644
--- a/llvm/include/llvm/Target/TargetMachine.h
+++ b/llvm/include/llvm/Target/TargetMachine.h
@@ -18,6 +18,7 @@
 #include "llvm/IR/PassManager.h"
 #include "llvm/Support/Allocator.h"
 #include "llvm/Support/CodeGen.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/PGOOptions.h"
 #include "llvm/Target/CGPassBuilderOption.h"
diff --git a/llvm/include/llvm/Target/TargetOptions.h \
b/llvm/include/llvm/Target/TargetOptions.h index d6d767f3d22c73e..ee6598fda4fbb7d \
                100644
--- a/llvm/include/llvm/Target/TargetOptions.h
+++ b/llvm/include/llvm/Target/TargetOptions.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/FloatingPointMode.h"
 #include "llvm/MC/MCTargetOptions.h"
+#include "llvm/Support/Compiler.h"
 
 #include <memory>
 
diff --git a/llvm/include/llvm/TargetParser/AArch64TargetParser.h \
b/llvm/include/llvm/TargetParser/AArch64TargetParser.h index \
                dc4cdfa8e90ac12..594f70a4e60a013 100644
--- a/llvm/include/llvm/TargetParser/AArch64TargetParser.h
+++ b/llvm/include/llvm/TargetParser/AArch64TargetParser.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/VersionTuple.h"
 #include <array>
 #include <vector>
diff --git a/llvm/include/llvm/TargetParser/ARMTargetParser.h \
b/llvm/include/llvm/TargetParser/ARMTargetParser.h index \
                9a81415681fdb7a..a7c63f8ff469376 100644
--- a/llvm/include/llvm/TargetParser/ARMTargetParser.h
+++ b/llvm/include/llvm/TargetParser/ARMTargetParser.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Support/ARMBuildAttributes.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/TargetParser/ARMTargetParserCommon.h"
 #include <vector>
 
diff --git a/llvm/include/llvm/TargetParser/ARMTargetParserCommon.h \
b/llvm/include/llvm/TargetParser/ARMTargetParserCommon.h index \
                e3d9ffc1d4db52b..0e9bae86fed558f 100644
--- a/llvm/include/llvm/TargetParser/ARMTargetParserCommon.h
+++ b/llvm/include/llvm/TargetParser/ARMTargetParserCommon.h
@@ -14,6 +14,7 @@
 #define LLVM_TARGETPARSER_ARMTARGETPARSERCOMMON_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 namespace ARM {
diff --git a/llvm/include/llvm/TargetParser/CSKYTargetParser.h \
b/llvm/include/llvm/TargetParser/CSKYTargetParser.h index \
                4c4ec06f758a88e..5a9f95056801e37 100644
--- a/llvm/include/llvm/TargetParser/CSKYTargetParser.h
+++ b/llvm/include/llvm/TargetParser/CSKYTargetParser.h
@@ -15,6 +15,7 @@
 #ifndef LLVM_TARGETPARSER_CSKYTARGETPARSER_H
 #define LLVM_TARGETPARSER_CSKYTARGETPARSER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/TargetParser/Triple.h"
 #include <vector>
 
diff --git a/llvm/include/llvm/TargetParser/Host.h \
b/llvm/include/llvm/TargetParser/Host.h index af72045a8fe67fd..2c86d26c395ce7d 100644
--- a/llvm/include/llvm/TargetParser/Host.h
+++ b/llvm/include/llvm/TargetParser/Host.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_TARGETPARSER_HOST_H
 #define LLVM_TARGETPARSER_HOST_H
 
+#include "llvm/Support/Compiler.h"
 #include <string>
 
 namespace llvm {
diff --git a/llvm/include/llvm/TargetParser/LoongArchTargetParser.h \
b/llvm/include/llvm/TargetParser/LoongArchTargetParser.h index \
                ff325a76d1356dc..b715a0078eca80a 100644
--- a/llvm/include/llvm/TargetParser/LoongArchTargetParser.h
+++ b/llvm/include/llvm/TargetParser/LoongArchTargetParser.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_TARGETPARSER_LOONGARCHTARGETPARSER_H
 #define LLVM_TARGETPARSER_LOONGARCHTARGETPARSER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/TargetParser/Triple.h"
 #include <vector>
 
diff --git a/llvm/include/llvm/TargetParser/RISCVTargetParser.h \
b/llvm/include/llvm/TargetParser/RISCVTargetParser.h index \
                a4cb7988eb398b7..d4ab3ad48439f23 100644
--- a/llvm/include/llvm/TargetParser/RISCVTargetParser.h
+++ b/llvm/include/llvm/TargetParser/RISCVTargetParser.h
@@ -15,6 +15,7 @@
 #define LLVM_TARGETPARSER_RISCVTARGETPARSER_H
 
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <vector>
 
 namespace llvm {
diff --git a/llvm/include/llvm/TargetParser/SubtargetFeature.h \
b/llvm/include/llvm/TargetParser/SubtargetFeature.h index \
                a898275c1493cc5..9f64929a669ff26 100644
--- a/llvm/include/llvm/TargetParser/SubtargetFeature.h
+++ b/llvm/include/llvm/TargetParser/SubtargetFeature.h
@@ -20,6 +20,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/MathExtras.h"
 #include <array>
 #include <initializer_list>
diff --git a/llvm/include/llvm/TargetParser/TargetParser.h \
b/llvm/include/llvm/TargetParser/TargetParser.h index \
                c91fafb9e1e79e7..c5712bf247f8666 100644
--- a/llvm/include/llvm/TargetParser/TargetParser.h
+++ b/llvm/include/llvm/TargetParser/TargetParser.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/TargetParser/Triple.h \
b/llvm/include/llvm/TargetParser/Triple.h index e496f5dba393c11..6f8809bae8744fe \
                100644
--- a/llvm/include/llvm/TargetParser/Triple.h
+++ b/llvm/include/llvm/TargetParser/Triple.h
@@ -10,6 +10,7 @@
 #define LLVM_TARGETPARSER_TRIPLE_H
 
 #include "llvm/ADT/Twine.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/VersionTuple.h"
 
 // Some system headers or GCC predefined macros conflict with identifiers in
diff --git a/llvm/include/llvm/TargetParser/X86TargetParser.h \
b/llvm/include/llvm/TargetParser/X86TargetParser.h index \
                7a302c3d6454176..1a0e05cd5e20d39 100644
--- a/llvm/include/llvm/TargetParser/X86TargetParser.h
+++ b/llvm/include/llvm/TargetParser/X86TargetParser.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/StringMap.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 template <typename T> class SmallVectorImpl;
diff --git a/llvm/include/llvm/Testing/Annotations/Annotations.h \
b/llvm/include/llvm/Testing/Annotations/Annotations.h index \
                4d38002f029de28..cba192d12bcb79d 100644
--- a/llvm/include/llvm/Testing/Annotations/Annotations.h
+++ b/llvm/include/llvm/Testing/Annotations/Annotations.h
@@ -11,6 +11,7 @@
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringMap.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include <tuple>
 #include <vector>
 
diff --git a/llvm/include/llvm/Testing/Support/Error.h \
b/llvm/include/llvm/Testing/Support/Error.h index 5ed8f11e6189b5d..6987b0c38e342d2 \
                100644
--- a/llvm/include/llvm/Testing/Support/Error.h
+++ b/llvm/include/llvm/Testing/Support/Error.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_TESTING_SUPPORT_ERROR_H
 #define LLVM_TESTING_SUPPORT_ERROR_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Testing/Support/SupportHelpers.h"
 
diff --git a/llvm/include/llvm/Testing/Support/SupportHelpers.h \
b/llvm/include/llvm/Testing/Support/SupportHelpers.h index \
                95c2765027ba0e3..e82c413bea769f5 100644
--- a/llvm/include/llvm/Testing/Support/SupportHelpers.h
+++ b/llvm/include/llvm/Testing/Support/SupportHelpers.h
@@ -10,6 +10,7 @@
 #define LLVM_TESTING_SUPPORT_SUPPORTHELPERS_H
 
 #include "llvm/ADT/SmallString.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/Path.h"
diff --git a/llvm/include/llvm/TextAPI/Architecture.h \
b/llvm/include/llvm/TextAPI/Architecture.h index 978359995074b93..ece107731f1ceb3 \
                100644
--- a/llvm/include/llvm/TextAPI/Architecture.h
+++ b/llvm/include/llvm/TextAPI/Architecture.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_TEXTAPI_ARCHITECTURE_H
 #define LLVM_TEXTAPI_ARCHITECTURE_H
 
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <utility>
 
diff --git a/llvm/include/llvm/TextAPI/ArchitectureSet.h \
b/llvm/include/llvm/TextAPI/ArchitectureSet.h index f17cb74c91839bf..1555a047d0e7a42 \
                100644
--- a/llvm/include/llvm/TextAPI/ArchitectureSet.h
+++ b/llvm/include/llvm/TextAPI/ArchitectureSet.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_TEXTAPI_ARCHITECTURESET_H
 #define LLVM_TEXTAPI_ARCHITECTURESET_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/TextAPI/Architecture.h"
 #include <cstddef>
 #include <iterator>
diff --git a/llvm/include/llvm/TextAPI/InterfaceFile.h \
b/llvm/include/llvm/TextAPI/InterfaceFile.h index 7d20c6f6348607b..4431d07b02d5819 \
                100644
--- a/llvm/include/llvm/TextAPI/InterfaceFile.h
+++ b/llvm/include/llvm/TextAPI/InterfaceFile.h
@@ -20,6 +20,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/iterator.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/TextAPI/ArchitectureSet.h"
 #include "llvm/TextAPI/PackedVersion.h"
 #include "llvm/TextAPI/Platform.h"
diff --git a/llvm/include/llvm/TextAPI/PackedVersion.h \
b/llvm/include/llvm/TextAPI/PackedVersion.h index eafa5089673521b..983f7d1623efdef \
                100644
--- a/llvm/include/llvm/TextAPI/PackedVersion.h
+++ b/llvm/include/llvm/TextAPI/PackedVersion.h
@@ -13,6 +13,7 @@
 #ifndef LLVM_TEXTAPI_PACKEDVERSION_H
 #define LLVM_TEXTAPI_PACKEDVERSION_H
 
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <string>
 #include <utility>
diff --git a/llvm/include/llvm/TextAPI/Platform.h \
b/llvm/include/llvm/TextAPI/Platform.h index d828d9ac49f65fe..56938e85b219658 100644
--- a/llvm/include/llvm/TextAPI/Platform.h
+++ b/llvm/include/llvm/TextAPI/Platform.h
@@ -14,6 +14,7 @@
 
 #include "llvm/ADT/SmallSet.h"
 #include "llvm/BinaryFormat/MachO.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/VersionTuple.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/TextAPI/Symbol.h b/llvm/include/llvm/TextAPI/Symbol.h
index 48627c3d893a285..ab62a2b2cb99153 100644
--- a/llvm/include/llvm/TextAPI/Symbol.h
+++ b/llvm/include/llvm/TextAPI/Symbol.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/BitmaskEnum.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 #include "llvm/TextAPI/ArchitectureSet.h"
 #include "llvm/TextAPI/Target.h"
diff --git a/llvm/include/llvm/TextAPI/Target.h b/llvm/include/llvm/TextAPI/Target.h
index edcc0708d147892..a889cb6f9934f9e 100644
--- a/llvm/include/llvm/TextAPI/Target.h
+++ b/llvm/include/llvm/TextAPI/Target.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_TEXTAPI_TARGET_H
 #define LLVM_TEXTAPI_TARGET_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/VersionTuple.h"
 #include "llvm/TargetParser/Triple.h"
diff --git a/llvm/include/llvm/TextAPI/TextAPIReader.h \
b/llvm/include/llvm/TextAPI/TextAPIReader.h index 389335312a74ed5..19f1a00cf883c0e \
                100644
--- a/llvm/include/llvm/TextAPI/TextAPIReader.h
+++ b/llvm/include/llvm/TextAPI/TextAPIReader.h
@@ -9,6 +9,7 @@
 #ifndef LLVM_TEXTAPI_TEXTAPIREADER_H
 #define LLVM_TEXTAPI_TEXTAPIREADER_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/TextAPI/TextAPIWriter.h \
b/llvm/include/llvm/TextAPI/TextAPIWriter.h index 9bdaaf58d09f31e..9e24c069b80cc1b \
                100644
--- a/llvm/include/llvm/TextAPI/TextAPIWriter.h
+++ b/llvm/include/llvm/TextAPI/TextAPIWriter.h
@@ -9,6 +9,8 @@
 #ifndef LLVM_TEXTAPI_TEXTAPIWRITER_H
 #define LLVM_TEXTAPI_TEXTAPIWRITER_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 
 class Error;
diff --git a/llvm/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h \
b/llvm/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h index \
                d144f62f1cc1ad9..4d4e0128ecee112 100644
--- a/llvm/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h
+++ b/llvm/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h
@@ -14,6 +14,8 @@
 #ifndef LLVM_TOOLDRIVERS_LLVM_DLLTOOL_DLLTOOLDRIVER_H
 #define LLVM_TOOLDRIVERS_LLVM_DLLTOOL_DLLTOOLDRIVER_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 template <typename T> class ArrayRef;
 
diff --git a/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h \
b/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h index \
                23a2fc348a89272..badfa57ddf8d6e0 100644
--- a/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h
+++ b/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h
@@ -14,6 +14,8 @@
 #ifndef LLVM_TOOLDRIVERS_LLVM_LIB_LIBDRIVER_H
 #define LLVM_TOOLDRIVERS_LLVM_LIB_LIBDRIVER_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 template <typename T> class ArrayRef;
 
diff --git a/llvm/include/llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h \
b/llvm/include/llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h index \
                2d76546316fafb1..c7d4124a0b3853e 100644
--- a/llvm/include/llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h
+++ b/llvm/include/llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h
@@ -16,6 +16,7 @@
 #define LLVM_TRANSFORMS_AGGRESSIVEINSTCOMBINE_AGGRESSIVEINSTCOMBINE_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/CFGuard.h \
b/llvm/include/llvm/Transforms/CFGuard.h index 86fcbc3c13e8b71..35ed6144dbe8f56 \
                100644
--- a/llvm/include/llvm/Transforms/CFGuard.h
+++ b/llvm/include/llvm/Transforms/CFGuard.h
@@ -11,6 +11,8 @@
 #ifndef LLVM_TRANSFORMS_CFGUARD_H
 #define LLVM_TRANSFORMS_CFGUARD_H
 
+#include "llvm/Support/Compiler.h"
+
 namespace llvm {
 
 class FunctionPass;
diff --git a/llvm/include/llvm/Transforms/Coroutines/CoroCleanup.h \
b/llvm/include/llvm/Transforms/Coroutines/CoroCleanup.h index \
                3000a38258f4fff..19c727952cfcc2e 100644
--- a/llvm/include/llvm/Transforms/Coroutines/CoroCleanup.h
+++ b/llvm/include/llvm/Transforms/Coroutines/CoroCleanup.h
@@ -15,6 +15,7 @@
 #define LLVM_TRANSFORMS_COROUTINES_COROCLEANUP_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Coroutines/CoroConditionalWrapper.h \
b/llvm/include/llvm/Transforms/Coroutines/CoroConditionalWrapper.h index \
                86b0449b8713df4..6433072c332d825 100644
--- a/llvm/include/llvm/Transforms/Coroutines/CoroConditionalWrapper.h
+++ b/llvm/include/llvm/Transforms/Coroutines/CoroConditionalWrapper.h
@@ -10,6 +10,7 @@
 #define LLVM_TRANSFORMS_COROUTINES_COROCONDITIONALWRAPPER_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Coroutines/CoroEarly.h \
b/llvm/include/llvm/Transforms/Coroutines/CoroEarly.h index \
                d55dcc6dfa6db8e..71b312dbf5170e2 100644
--- a/llvm/include/llvm/Transforms/Coroutines/CoroEarly.h
+++ b/llvm/include/llvm/Transforms/Coroutines/CoroEarly.h
@@ -18,6 +18,7 @@
 #define LLVM_TRANSFORMS_COROUTINES_COROEARLY_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Coroutines/CoroElide.h \
b/llvm/include/llvm/Transforms/Coroutines/CoroElide.h index \
                ff73cf20c5bf2a6..b458584374da5f0 100644
--- a/llvm/include/llvm/Transforms/Coroutines/CoroElide.h
+++ b/llvm/include/llvm/Transforms/Coroutines/CoroElide.h
@@ -17,6 +17,7 @@
 #define LLVM_TRANSFORMS_COROUTINES_COROELIDE_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Coroutines/CoroSplit.h \
b/llvm/include/llvm/Transforms/Coroutines/CoroSplit.h index \
                a2be1099ff68fca..c0ce3cf648efb56 100644
--- a/llvm/include/llvm/Transforms/Coroutines/CoroSplit.h
+++ b/llvm/include/llvm/Transforms/Coroutines/CoroSplit.h
@@ -18,6 +18,7 @@
 #include "llvm/Analysis/CGSCCPassManager.h"
 #include "llvm/Analysis/LazyCallGraph.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO.h b/llvm/include/llvm/Transforms/IPO.h
index 4995b000c454244..a509ea9ecadd0d0 100644
--- a/llvm/include/llvm/Transforms/IPO.h
+++ b/llvm/include/llvm/Transforms/IPO.h
@@ -15,6 +15,7 @@
 #define LLVM_TRANSFORMS_IPO_H
 
 #include "llvm/ADT/SmallVector.h"
+#include "llvm/Support/Compiler.h"
 #include <functional>
 #include <vector>
 
diff --git a/llvm/include/llvm/Transforms/IPO/AlwaysInliner.h \
b/llvm/include/llvm/Transforms/IPO/AlwaysInliner.h index \
                252cfd4dc5f372a..6dac984a66bab81 100644
--- a/llvm/include/llvm/Transforms/IPO/AlwaysInliner.h
+++ b/llvm/include/llvm/Transforms/IPO/AlwaysInliner.h
@@ -15,6 +15,7 @@
 #define LLVM_TRANSFORMS_IPO_ALWAYSINLINER_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO/Annotation2Metadata.h \
b/llvm/include/llvm/Transforms/IPO/Annotation2Metadata.h index \
                dee2759d854f7ae..f2cd083c37af40e 100644
--- a/llvm/include/llvm/Transforms/IPO/Annotation2Metadata.h
+++ b/llvm/include/llvm/Transforms/IPO/Annotation2Metadata.h
@@ -15,6 +15,7 @@
 #define LLVM_TRANSFORMS_IPO_ANNOTATION2METADATA_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO/ArgumentPromotion.h \
b/llvm/include/llvm/Transforms/IPO/ArgumentPromotion.h index \
                3865f098b8de065..60b8350f221af8f 100644
--- a/llvm/include/llvm/Transforms/IPO/ArgumentPromotion.h
+++ b/llvm/include/llvm/Transforms/IPO/ArgumentPromotion.h
@@ -12,6 +12,7 @@
 #include "llvm/Analysis/CGSCCPassManager.h"
 #include "llvm/Analysis/LazyCallGraph.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO/Attributor.h \
b/llvm/include/llvm/Transforms/IPO/Attributor.h index \
                834a8b0922d5841..1bd31cd558b7446 100644
--- a/llvm/include/llvm/Transforms/IPO/Attributor.h
+++ b/llvm/include/llvm/Transforms/IPO/Attributor.h
@@ -126,6 +126,7 @@
 #include "llvm/Support/Alignment.h"
 #include "llvm/Support/Allocator.h"
 #include "llvm/Support/Casting.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/DOTGraphTraits.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/ModRef.h"
diff --git a/llvm/include/llvm/Transforms/IPO/BlockExtractor.h \
b/llvm/include/llvm/Transforms/IPO/BlockExtractor.h index \
                6211027bd672a4c..b596e24732f1e67 100644
--- a/llvm/include/llvm/Transforms/IPO/BlockExtractor.h
+++ b/llvm/include/llvm/Transforms/IPO/BlockExtractor.h
@@ -18,6 +18,7 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class BasicBlock;
diff --git a/llvm/include/llvm/Transforms/IPO/CalledValuePropagation.h \
b/llvm/include/llvm/Transforms/IPO/CalledValuePropagation.h index \
                782633799ede62b..89af01b7e8f2bbf 100644
--- a/llvm/include/llvm/Transforms/IPO/CalledValuePropagation.h
+++ b/llvm/include/llvm/Transforms/IPO/CalledValuePropagation.h
@@ -20,6 +20,7 @@
 #define LLVM_TRANSFORMS_IPO_CALLEDVALUEPROPAGATION_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO/ConstantMerge.h \
b/llvm/include/llvm/Transforms/IPO/ConstantMerge.h index \
                12d38b5f58fa0d2..1a3e0fd20f7aaa0 100644
--- a/llvm/include/llvm/Transforms/IPO/ConstantMerge.h
+++ b/llvm/include/llvm/Transforms/IPO/ConstantMerge.h
@@ -20,6 +20,7 @@
 #define LLVM_TRANSFORMS_IPO_CONSTANTMERGE_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO/CrossDSOCFI.h \
b/llvm/include/llvm/Transforms/IPO/CrossDSOCFI.h index \
                d34a51081101803..709a63a4f8a2a70 100644
--- a/llvm/include/llvm/Transforms/IPO/CrossDSOCFI.h
+++ b/llvm/include/llvm/Transforms/IPO/CrossDSOCFI.h
@@ -15,6 +15,7 @@
 #define LLVM_TRANSFORMS_IPO_CROSSDSOCFI_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class CrossDSOCFIPass : public PassInfoMixin<CrossDSOCFIPass> {
diff --git a/llvm/include/llvm/Transforms/IPO/DeadArgumentElimination.h \
b/llvm/include/llvm/Transforms/IPO/DeadArgumentElimination.h index \
                63e1ad043d49f62..1193946d20ed4a9 100644
--- a/llvm/include/llvm/Transforms/IPO/DeadArgumentElimination.h
+++ b/llvm/include/llvm/Transforms/IPO/DeadArgumentElimination.h
@@ -23,6 +23,7 @@
 #include "llvm/ADT/Twine.h"
 #include "llvm/IR/Function.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include <map>
 #include <set>
 #include <string>
diff --git a/llvm/include/llvm/Transforms/IPO/ElimAvailExtern.h \
b/llvm/include/llvm/Transforms/IPO/ElimAvailExtern.h index \
                92c319b3cce30a2..4ddbc4ba0ae6f5a 100644
--- a/llvm/include/llvm/Transforms/IPO/ElimAvailExtern.h
+++ b/llvm/include/llvm/Transforms/IPO/ElimAvailExtern.h
@@ -15,6 +15,7 @@
 #define LLVM_TRANSFORMS_IPO_ELIMAVAILEXTERN_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO/EmbedBitcodePass.h \
b/llvm/include/llvm/Transforms/IPO/EmbedBitcodePass.h index \
                f323c61483fd30a..47303a8e8618b1d 100644
--- a/llvm/include/llvm/Transforms/IPO/EmbedBitcodePass.h
+++ b/llvm/include/llvm/Transforms/IPO/EmbedBitcodePass.h
@@ -19,6 +19,7 @@
 #define LLVM_TRANSFORMS_IPO_EMBEDBITCODEPASS_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Module;
diff --git a/llvm/include/llvm/Transforms/IPO/ExtractGV.h \
b/llvm/include/llvm/Transforms/IPO/ExtractGV.h index 45e29ba9a3ecfea..df68ed63d176a72 \
                100644
--- a/llvm/include/llvm/Transforms/IPO/ExtractGV.h
+++ b/llvm/include/llvm/Transforms/IPO/ExtractGV.h
@@ -11,6 +11,7 @@
 
 #include "llvm/ADT/SetVector.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h \
b/llvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h index \
                52667e19bc88b35..d52e296e103797e 100644
--- a/llvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h
+++ b/llvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h
@@ -14,6 +14,7 @@
 #define LLVM_TRANSFORMS_IPO_FORCEFUNCTIONATTRS_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Module;
diff --git a/llvm/include/llvm/Transforms/IPO/FunctionAttrs.h \
b/llvm/include/llvm/Transforms/IPO/FunctionAttrs.h index \
                6a21ff616d50670..320efbb22b20519 100644
--- a/llvm/include/llvm/Transforms/IPO/FunctionAttrs.h
+++ b/llvm/include/llvm/Transforms/IPO/FunctionAttrs.h
@@ -19,6 +19,7 @@
 #include "llvm/Analysis/CGSCCPassManager.h"
 #include "llvm/Analysis/LazyCallGraph.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO/FunctionImport.h \
b/llvm/include/llvm/Transforms/IPO/FunctionImport.h index \
                3e4b3eb30e77b27..aca2543c164ff79 100644
--- a/llvm/include/llvm/Transforms/IPO/FunctionImport.h
+++ b/llvm/include/llvm/Transforms/IPO/FunctionImport.h
@@ -15,6 +15,7 @@
 #include "llvm/IR/GlobalValue.h"
 #include "llvm/IR/ModuleSummaryIndex.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Error.h"
 #include <functional>
 #include <map>
diff --git a/llvm/include/llvm/Transforms/IPO/FunctionSpecialization.h \
b/llvm/include/llvm/Transforms/IPO/FunctionSpecialization.h index \
                f780385f7f67dab..0dca5ae6697eae2 100644
--- a/llvm/include/llvm/Transforms/IPO/FunctionSpecialization.h
+++ b/llvm/include/llvm/Transforms/IPO/FunctionSpecialization.h
@@ -53,6 +53,7 @@
 #include "llvm/Analysis/InlineCost.h"
 #include "llvm/Analysis/TargetTransformInfo.h"
 #include "llvm/IR/InstVisitor.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Transforms/Scalar/SCCP.h"
 #include "llvm/Transforms/Utils/Cloning.h"
 #include "llvm/Transforms/Utils/SCCPSolver.h"
diff --git a/llvm/include/llvm/Transforms/IPO/GlobalDCE.h \
b/llvm/include/llvm/Transforms/IPO/GlobalDCE.h index 92c30d4b54a2612..9072df72d12e372 \
                100644
--- a/llvm/include/llvm/Transforms/IPO/GlobalDCE.h
+++ b/llvm/include/llvm/Transforms/IPO/GlobalDCE.h
@@ -21,6 +21,7 @@
 #include "llvm/ADT/SmallSet.h"
 #include "llvm/IR/GlobalValue.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include <unordered_map>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Transforms/IPO/GlobalOpt.h \
b/llvm/include/llvm/Transforms/IPO/GlobalOpt.h index 48a861ff2cf8f48..f75c99c64343ecb \
                100644
--- a/llvm/include/llvm/Transforms/IPO/GlobalOpt.h
+++ b/llvm/include/llvm/Transforms/IPO/GlobalOpt.h
@@ -16,6 +16,7 @@
 #define LLVM_TRANSFORMS_IPO_GLOBALOPT_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO/GlobalSplit.h \
b/llvm/include/llvm/Transforms/IPO/GlobalSplit.h index \
                690b23a2d78535a..e7f158cc55d08dd 100644
--- a/llvm/include/llvm/Transforms/IPO/GlobalSplit.h
+++ b/llvm/include/llvm/Transforms/IPO/GlobalSplit.h
@@ -17,6 +17,7 @@
 #define LLVM_TRANSFORMS_IPO_GLOBALSPLIT_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO/HotColdSplitting.h \
b/llvm/include/llvm/Transforms/IPO/HotColdSplitting.h index \
                8c3049fbaac468e..493073661a5492c 100644
--- a/llvm/include/llvm/Transforms/IPO/HotColdSplitting.h
+++ b/llvm/include/llvm/Transforms/IPO/HotColdSplitting.h
@@ -13,6 +13,7 @@
 #define LLVM_TRANSFORMS_IPO_HOTCOLDSPLITTING_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO/IROutliner.h \
b/llvm/include/llvm/Transforms/IPO/IROutliner.h index \
                28970f7dcdf10e2..2f21deab0b56c91 100644
--- a/llvm/include/llvm/Transforms/IPO/IROutliner.h
+++ b/llvm/include/llvm/Transforms/IPO/IROutliner.h
@@ -43,6 +43,7 @@
 
 #include "llvm/Analysis/IRSimilarityIdentifier.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/InstructionCost.h"
 #include "llvm/Transforms/Utils/CodeExtractor.h"
 
diff --git a/llvm/include/llvm/Transforms/IPO/InferFunctionAttrs.h \
b/llvm/include/llvm/Transforms/IPO/InferFunctionAttrs.h index \
                8addf49fc0d81fa..68fadcd0989643e 100644
--- a/llvm/include/llvm/Transforms/IPO/InferFunctionAttrs.h
+++ b/llvm/include/llvm/Transforms/IPO/InferFunctionAttrs.h
@@ -16,6 +16,7 @@
 #define LLVM_TRANSFORMS_IPO_INFERFUNCTIONATTRS_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Module;
diff --git a/llvm/include/llvm/Transforms/IPO/Inliner.h \
b/llvm/include/llvm/Transforms/IPO/Inliner.h index 401aa2d3a0cc632..b9ab31191c47913 \
                100644
--- a/llvm/include/llvm/Transforms/IPO/Inliner.h
+++ b/llvm/include/llvm/Transforms/IPO/Inliner.h
@@ -15,6 +15,7 @@
 #include "llvm/Analysis/LazyCallGraph.h"
 #include "llvm/Analysis/Utils/ImportedFunctionsInliningStatistics.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO/Internalize.h \
b/llvm/include/llvm/Transforms/IPO/Internalize.h index \
                ece5bfe77b79833..3ccef96f6ab4d3a 100644
--- a/llvm/include/llvm/Transforms/IPO/Internalize.h
+++ b/llvm/include/llvm/Transforms/IPO/Internalize.h
@@ -24,6 +24,7 @@
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/StringSet.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include <functional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Transforms/IPO/LoopExtractor.h \
b/llvm/include/llvm/Transforms/IPO/LoopExtractor.h index \
                aa697484d0e95eb..06971e7c8a2196f 100644
--- a/llvm/include/llvm/Transforms/IPO/LoopExtractor.h
+++ b/llvm/include/llvm/Transforms/IPO/LoopExtractor.h
@@ -17,6 +17,7 @@
 #define LLVM_TRANSFORMS_IPO_LOOPEXTRACTOR_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO/LowerTypeTests.h \
b/llvm/include/llvm/Transforms/IPO/LowerTypeTests.h index \
                eb682c437b94bca..105d7823afc346f 100644
--- a/llvm/include/llvm/Transforms/IPO/LowerTypeTests.h
+++ b/llvm/include/llvm/Transforms/IPO/LowerTypeTests.h
@@ -16,6 +16,7 @@
 
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <cstring>
 #include <limits>
diff --git a/llvm/include/llvm/Transforms/IPO/MemProfContextDisambiguation.h \
b/llvm/include/llvm/Transforms/IPO/MemProfContextDisambiguation.h index \
                f4c20a5749f0be1..88e3aa2722a73e9 100644
--- a/llvm/include/llvm/Transforms/IPO/MemProfContextDisambiguation.h
+++ b/llvm/include/llvm/Transforms/IPO/MemProfContextDisambiguation.h
@@ -20,6 +20,7 @@
 #include "llvm/IR/GlobalValue.h"
 #include "llvm/IR/ModuleSummaryIndex.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include <functional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Transforms/IPO/MergeFunctions.h \
b/llvm/include/llvm/Transforms/IPO/MergeFunctions.h index \
                822f0fd99188d00..67c17b2ebe6aeb0 100644
--- a/llvm/include/llvm/Transforms/IPO/MergeFunctions.h
+++ b/llvm/include/llvm/Transforms/IPO/MergeFunctions.h
@@ -16,6 +16,7 @@
 #define LLVM_TRANSFORMS_IPO_MERGEFUNCTIONS_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO/ModuleInliner.h \
b/llvm/include/llvm/Transforms/IPO/ModuleInliner.h index \
                24cfff6083ffb3a..def16aecc095800 100644
--- a/llvm/include/llvm/Transforms/IPO/ModuleInliner.h
+++ b/llvm/include/llvm/Transforms/IPO/ModuleInliner.h
@@ -12,6 +12,7 @@
 #include "llvm/Analysis/InlineAdvisor.h"
 #include "llvm/Analysis/InlineCost.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO/OpenMPOpt.h \
b/llvm/include/llvm/Transforms/IPO/OpenMPOpt.h index 4ab0035f3b42001..0039c9678fc5086 \
                100644
--- a/llvm/include/llvm/Transforms/IPO/OpenMPOpt.h
+++ b/llvm/include/llvm/Transforms/IPO/OpenMPOpt.h
@@ -12,6 +12,7 @@
 #include "llvm/Analysis/CGSCCPassManager.h"
 #include "llvm/Analysis/LazyCallGraph.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO/PartialInlining.h \
b/llvm/include/llvm/Transforms/IPO/PartialInlining.h index \
                3b8297d6598756a..a56beeb6d0b2dbe 100644
--- a/llvm/include/llvm/Transforms/IPO/PartialInlining.h
+++ b/llvm/include/llvm/Transforms/IPO/PartialInlining.h
@@ -15,6 +15,7 @@
 #define LLVM_TRANSFORMS_IPO_PARTIALINLINING_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO/ProfiledCallGraph.h \
b/llvm/include/llvm/Transforms/IPO/ProfiledCallGraph.h index \
                bc8360a80bc02bd..df9eff8128b66f4 100644
--- a/llvm/include/llvm/Transforms/IPO/ProfiledCallGraph.h
+++ b/llvm/include/llvm/Transforms/IPO/ProfiledCallGraph.h
@@ -14,6 +14,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ProfileData/SampleProf.h"
 #include "llvm/ProfileData/SampleProfReader.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Transforms/IPO/SampleContextTracker.h"
 #include <queue>
 #include <set>
diff --git a/llvm/include/llvm/Transforms/IPO/SCCP.h \
b/llvm/include/llvm/Transforms/IPO/SCCP.h index 980737253eef511..dbb59e16a8d1a7f \
                100644
--- a/llvm/include/llvm/Transforms/IPO/SCCP.h
+++ b/llvm/include/llvm/Transforms/IPO/SCCP.h
@@ -21,6 +21,7 @@
 #define LLVM_TRANSFORMS_IPO_SCCP_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO/SampleContextTracker.h \
b/llvm/include/llvm/Transforms/IPO/SampleContextTracker.h index \
                347dac1e9684db1..24d0b71b7e4fbdb 100644
--- a/llvm/include/llvm/Transforms/IPO/SampleContextTracker.h
+++ b/llvm/include/llvm/Transforms/IPO/SampleContextTracker.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/iterator.h"
 #include "llvm/ProfileData/SampleProf.h"
+#include "llvm/Support/Compiler.h"
 #include <map>
 #include <queue>
 #include <vector>
diff --git a/llvm/include/llvm/Transforms/IPO/SampleProfileProbe.h \
b/llvm/include/llvm/Transforms/IPO/SampleProfileProbe.h index \
                601fe6ce8a2e25b..fccfcb3ab62313e 100644
--- a/llvm/include/llvm/Transforms/IPO/SampleProfileProbe.h
+++ b/llvm/include/llvm/Transforms/IPO/SampleProfileProbe.h
@@ -19,6 +19,7 @@
 #include "llvm/Analysis/LazyCallGraph.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/ProfileData/SampleProf.h"
+#include "llvm/Support/Compiler.h"
 #include <unordered_map>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Transforms/IPO/StripDeadPrototypes.h \
b/llvm/include/llvm/Transforms/IPO/StripDeadPrototypes.h index \
                4a2eaad63113e26..7947bb7acf0cf13 100644
--- a/llvm/include/llvm/Transforms/IPO/StripDeadPrototypes.h
+++ b/llvm/include/llvm/Transforms/IPO/StripDeadPrototypes.h
@@ -17,6 +17,7 @@
 #define LLVM_TRANSFORMS_IPO_STRIPDEADPROTOTYPES_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO/StripSymbols.h \
b/llvm/include/llvm/Transforms/IPO/StripSymbols.h index \
                dd76d481d668c56..3e5425e3e3d5bdc 100644
--- a/llvm/include/llvm/Transforms/IPO/StripSymbols.h
+++ b/llvm/include/llvm/Transforms/IPO/StripSymbols.h
@@ -23,6 +23,7 @@
 #define LLVM_TRANSFORMS_IPO_STRIPSYMBOLS_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/IPO/SyntheticCountsPropagation.h \
b/llvm/include/llvm/Transforms/IPO/SyntheticCountsPropagation.h index \
                5338ac9b0ebc575..36c3450b60e5f42 100644
--- a/llvm/include/llvm/Transforms/IPO/SyntheticCountsPropagation.h
+++ b/llvm/include/llvm/Transforms/IPO/SyntheticCountsPropagation.h
@@ -10,6 +10,7 @@
 #define LLVM_TRANSFORMS_IPO_SYNTHETICCOUNTSPROPAGATION_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Module;
diff --git a/llvm/include/llvm/Transforms/IPO/ThinLTOBitcodeWriter.h \
b/llvm/include/llvm/Transforms/IPO/ThinLTOBitcodeWriter.h index \
                9bcb01c9dbe43e1..c48488d367af5e0 100644
--- a/llvm/include/llvm/Transforms/IPO/ThinLTOBitcodeWriter.h
+++ b/llvm/include/llvm/Transforms/IPO/ThinLTOBitcodeWriter.h
@@ -17,6 +17,7 @@
 #define LLVM_TRANSFORMS_IPO_THINLTOBITCODEWRITER_H
 
 #include <llvm/IR/PassManager.h>
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Module;
diff --git a/llvm/include/llvm/Transforms/IPO/WholeProgramDevirt.h \
b/llvm/include/llvm/Transforms/IPO/WholeProgramDevirt.h index \
                9e121d9c6f4ed10..89a569ae7f59481 100644
--- a/llvm/include/llvm/Transforms/IPO/WholeProgramDevirt.h
+++ b/llvm/include/llvm/Transforms/IPO/WholeProgramDevirt.h
@@ -16,6 +16,7 @@
 
 #include "llvm/IR/GlobalValue.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 #include <map>
diff --git a/llvm/include/llvm/Transforms/InstCombine/InstCombine.h \
b/llvm/include/llvm/Transforms/InstCombine/InstCombine.h index \
                3e1c6e0fcdc6ab5..6970937ab503296 100644
--- a/llvm/include/llvm/Transforms/InstCombine/InstCombine.h
+++ b/llvm/include/llvm/Transforms/InstCombine/InstCombine.h
@@ -19,6 +19,7 @@
 #include "llvm/IR/Function.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/Compiler.h"
 
 #define DEBUG_TYPE "instcombine"
 #include "llvm/Transforms/Utils/InstructionWorklist.h"
diff --git a/llvm/include/llvm/Transforms/Instrumentation.h \
b/llvm/include/llvm/Transforms/Instrumentation.h index \
                392983a19844451..72a9d09a019864e 100644
--- a/llvm/include/llvm/Transforms/Instrumentation.h
+++ b/llvm/include/llvm/Transforms/Instrumentation.h
@@ -19,6 +19,7 @@
 #include "llvm/IR/Function.h"
 #include "llvm/IR/IRBuilder.h"
 #include "llvm/IR/Instruction.h"
+#include "llvm/Support/Compiler.h"
 #include <cassert>
 #include <cstdint>
 #include <limits>
diff --git a/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h \
b/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h index \
                ca54387306664c9..0cb701021ab407e 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h
@@ -15,6 +15,7 @@
 
 #include "llvm/IR/PassManager.h"
 #include "llvm/Transforms/Instrumentation/AddressSanitizerOptions.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Module;
diff --git a/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizerCommon.h \
b/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizerCommon.h index \
                4affc11429016c9..1bbf120e3f5d84d 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizerCommon.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/AddressSanitizerCommon.h
@@ -19,6 +19,7 @@
 #include "llvm/IR/Instruction.h"
 #include "llvm/IR/IntrinsicInst.h"
 #include "llvm/IR/Module.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Instrumentation/BlockCoverageInference.h \
b/llvm/include/llvm/Transforms/Instrumentation/BlockCoverageInference.h index \
                12f236481b251e1..28e2f26432dd2fd 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/BlockCoverageInference.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/BlockCoverageInference.h
@@ -18,6 +18,7 @@
 #include "llvm/ADT/ArrayRef.h"
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/SetVector.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/raw_ostream.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Transforms/Instrumentation/BoundsChecking.h \
b/llvm/include/llvm/Transforms/Instrumentation/BoundsChecking.h index \
                b1b1ece3eff5a0c..e2703bd4cc6e50b 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/BoundsChecking.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/BoundsChecking.h
@@ -10,6 +10,7 @@
 #define LLVM_TRANSFORMS_INSTRUMENTATION_BOUNDSCHECKING_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Function;
diff --git a/llvm/include/llvm/Transforms/Instrumentation/CFGMST.h \
b/llvm/include/llvm/Transforms/Instrumentation/CFGMST.h index \
                4d31898bb3147b6..66530a3e7da0b9d 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/CFGMST.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/CFGMST.h
@@ -20,6 +20,7 @@
 #include "llvm/Analysis/BranchProbabilityInfo.h"
 #include "llvm/Analysis/CFG.h"
 #include "llvm/Support/BranchProbability.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/raw_ostream.h"
 #include "llvm/Transforms/Utils/BasicBlockUtils.h"
diff --git a/llvm/include/llvm/Transforms/Instrumentation/CGProfile.h \
b/llvm/include/llvm/Transforms/Instrumentation/CGProfile.h index \
                9f9ce42277a0c12..561dd7a53e98c15 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/CGProfile.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/CGProfile.h
@@ -13,6 +13,7 @@
 #define LLVM_TRANSFORMS_INSTRUMENTATION_CGPROFILE_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Module;
diff --git a/llvm/include/llvm/Transforms/Instrumentation/ControlHeightReduction.h \
b/llvm/include/llvm/Transforms/Instrumentation/ControlHeightReduction.h index \
                0bace514c361957..4f4ac2df4bba638 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/ControlHeightReduction.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/ControlHeightReduction.h
@@ -15,6 +15,7 @@
 #define LLVM_TRANSFORMS_INSTRUMENTATION_CONTROLHEIGHTREDUCTION_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Instrumentation/DataFlowSanitizer.h \
b/llvm/include/llvm/Transforms/Instrumentation/DataFlowSanitizer.h index \
                41ba05cd67f0c83..a1fcc401fdc5986 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/DataFlowSanitizer.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/DataFlowSanitizer.h
@@ -9,6 +9,7 @@
 #define LLVM_TRANSFORMS_INSTRUMENTATION_DATAFLOWSANITIZER_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include <string>
 #include <vector>
 
diff --git a/llvm/include/llvm/Transforms/Instrumentation/GCOVProfiler.h \
b/llvm/include/llvm/Transforms/Instrumentation/GCOVProfiler.h index \
                e5b4520f36a2fd4..42d337bb71dbb1b 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/GCOVProfiler.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/GCOVProfiler.h
@@ -13,6 +13,7 @@
 #define LLVM_TRANSFORMS_INSTRUMENTATION_GCOVPROFILER_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Transforms/Instrumentation.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Transforms/Instrumentation/HWAddressSanitizer.h \
b/llvm/include/llvm/Transforms/Instrumentation/HWAddressSanitizer.h index \
                11ea66780d8c5d7..05c17195272f377 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/HWAddressSanitizer.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/HWAddressSanitizer.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/STLFunctionalExtras.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Module;
diff --git a/llvm/include/llvm/Transforms/Instrumentation/InstrOrderFile.h \
b/llvm/include/llvm/Transforms/Instrumentation/InstrOrderFile.h index \
                e3d75f675c93bc1..dc18f71b011faff 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/InstrOrderFile.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/InstrOrderFile.h
@@ -12,6 +12,7 @@
 #define LLVM_TRANSFORMS_INSTRUMENTATION_INSTRORDERFILE_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Module;
diff --git a/llvm/include/llvm/Transforms/Instrumentation/InstrProfiling.h \
b/llvm/include/llvm/Transforms/Instrumentation/InstrProfiling.h index \
                cb0c055dcb74ae8..16da3bea77cef01 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/InstrProfiling.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/InstrProfiling.h
@@ -18,6 +18,7 @@
 #include "llvm/IR/IntrinsicInst.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/ProfileData/InstrProf.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Transforms/Instrumentation.h"
 #include <cstdint>
 #include <cstring>
diff --git a/llvm/include/llvm/Transforms/Instrumentation/KCFI.h \
b/llvm/include/llvm/Transforms/Instrumentation/KCFI.h index \
                9caa644f4747eb7..1eb2def3482ab76 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/KCFI.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/KCFI.h
@@ -15,6 +15,7 @@
 #define LLVM_TRANSFORMS_INSTRUMENTATION_KCFI_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class KCFIPass : public PassInfoMixin<KCFIPass> {
diff --git a/llvm/include/llvm/Transforms/Instrumentation/MemProfiler.h \
b/llvm/include/llvm/Transforms/Instrumentation/MemProfiler.h index \
                293133b29cd9f96..6fabbf783940f79 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/MemProfiler.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/MemProfiler.h
@@ -14,6 +14,7 @@
 
 #include "llvm/ADT/IntrusiveRefCntPtr.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Function;
diff --git a/llvm/include/llvm/Transforms/Instrumentation/MemorySanitizer.h \
b/llvm/include/llvm/Transforms/Instrumentation/MemorySanitizer.h index \
                0984e8ec32656ac..c25d15756b139ee 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/MemorySanitizer.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/MemorySanitizer.h
@@ -15,6 +15,7 @@
 
 #include "llvm/ADT/STLFunctionalExtras.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Module;
diff --git a/llvm/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h \
b/llvm/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h index \
                b497c0cc53afb26..66e4b72b2de2e56 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/IntrusiveRefCntPtr.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Compiler.h"
 #include <cstdint>
 #include <string>
 
diff --git a/llvm/include/llvm/Transforms/Instrumentation/PoisonChecking.h \
b/llvm/include/llvm/Transforms/Instrumentation/PoisonChecking.h index \
                4ec7ec809db7103..28e3af7c40f1e0b 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/PoisonChecking.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/PoisonChecking.h
@@ -10,6 +10,7 @@
 #define LLVM_TRANSFORMS_INSTRUMENTATION_POISONCHECKING_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Instrumentation/SanitizerBinaryMetadata.h \
b/llvm/include/llvm/Transforms/Instrumentation/SanitizerBinaryMetadata.h index \
                800a1d583f8015c..140428cda4c88ec 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/SanitizerBinaryMetadata.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/SanitizerBinaryMetadata.h
@@ -16,6 +16,7 @@
 #include "llvm/IR/Function.h"
 #include "llvm/IR/Module.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Transforms/Instrumentation.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Transforms/Instrumentation/SanitizerCoverage.h \
b/llvm/include/llvm/Transforms/Instrumentation/SanitizerCoverage.h index \
                89ab4fd114fccf8..d2e31eb78c4a783 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/SanitizerCoverage.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/SanitizerCoverage.h
@@ -16,6 +16,7 @@
 #define LLVM_TRANSFORMS_INSTRUMENTATION_SANITIZERCOVERAGE_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/SpecialCaseList.h"
 #include "llvm/Support/VirtualFileSystem.h"
 #include "llvm/Transforms/Instrumentation.h"
diff --git a/llvm/include/llvm/Transforms/Instrumentation/ThreadSanitizer.h \
b/llvm/include/llvm/Transforms/Instrumentation/ThreadSanitizer.h index \
                fd37130d5459682..cde17227cc1590a 100644
--- a/llvm/include/llvm/Transforms/Instrumentation/ThreadSanitizer.h
+++ b/llvm/include/llvm/Transforms/Instrumentation/ThreadSanitizer.h
@@ -14,6 +14,7 @@
 #define LLVM_TRANSFORMS_INSTRUMENTATION_THREADSANITIZER_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class Function;
diff --git a/llvm/include/llvm/Transforms/ObjCARC.h \
b/llvm/include/llvm/Transforms/ObjCARC.h index bd17c58e842eeb6..d675eca43874a91 \
                100644
--- a/llvm/include/llvm/Transforms/ObjCARC.h
+++ b/llvm/include/llvm/Transforms/ObjCARC.h
@@ -15,6 +15,7 @@
 #define LLVM_TRANSFORMS_OBJCARC_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar.h \
b/llvm/include/llvm/Transforms/Scalar.h index aaba710cfde61cc..ffbe70f6193dcd0 100644
--- a/llvm/include/llvm/Transforms/Scalar.h
+++ b/llvm/include/llvm/Transforms/Scalar.h
@@ -14,6 +14,7 @@
 #ifndef LLVM_TRANSFORMS_SCALAR_H
 #define LLVM_TRANSFORMS_SCALAR_H
 
+#include "llvm/Support/Compiler.h"
 #include "llvm/Transforms/Utils/SimplifyCFGOptions.h"
 #include <functional>
 
diff --git a/llvm/include/llvm/Transforms/Scalar/ADCE.h \
b/llvm/include/llvm/Transforms/Scalar/ADCE.h index 7d8b7ae68c00461..4b53757482d122f \
                100644
--- a/llvm/include/llvm/Transforms/Scalar/ADCE.h
+++ b/llvm/include/llvm/Transforms/Scalar/ADCE.h
@@ -17,6 +17,7 @@
 #define LLVM_TRANSFORMS_SCALAR_ADCE_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/AlignmentFromAssumptions.h \
b/llvm/include/llvm/Transforms/Scalar/AlignmentFromAssumptions.h index \
                10b6e1c6a21b639..9c057fd6d7c2701 100644
--- a/llvm/include/llvm/Transforms/Scalar/AlignmentFromAssumptions.h
+++ b/llvm/include/llvm/Transforms/Scalar/AlignmentFromAssumptions.h
@@ -18,6 +18,7 @@
 #define LLVM_TRANSFORMS_SCALAR_ALIGNMENTFROMASSUMPTIONS_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/AnnotationRemarks.h \
b/llvm/include/llvm/Transforms/Scalar/AnnotationRemarks.h index \
                45983ad9d57167a..66713f7cd2e94f8 100644
--- a/llvm/include/llvm/Transforms/Scalar/AnnotationRemarks.h
+++ b/llvm/include/llvm/Transforms/Scalar/AnnotationRemarks.h
@@ -15,6 +15,7 @@
 #define LLVM_TRANSFORMS_SCALAR_ANNOTATIONREMARKS_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/BDCE.h \
b/llvm/include/llvm/Transforms/Scalar/BDCE.h index 0763f31dfad45b9..c7df1ac9ca79b01 \
                100644
--- a/llvm/include/llvm/Transforms/Scalar/BDCE.h
+++ b/llvm/include/llvm/Transforms/Scalar/BDCE.h
@@ -17,6 +17,7 @@
 #define LLVM_TRANSFORMS_SCALAR_BDCE_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/CallSiteSplitting.h \
b/llvm/include/llvm/Transforms/Scalar/CallSiteSplitting.h index \
                661340f4598f130..0dc26db470aae05 100644
--- a/llvm/include/llvm/Transforms/Scalar/CallSiteSplitting.h
+++ b/llvm/include/llvm/Transforms/Scalar/CallSiteSplitting.h
@@ -10,6 +10,7 @@
 #define LLVM_TRANSFORMS_SCALAR_CALLSITESPLITTING_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h \
b/llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h index \
                e59734b92244080..94fa04582a80a3f 100644
--- a/llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h
+++ b/llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h
@@ -42,6 +42,7 @@
 #include "llvm/ADT/SetVector.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include <algorithm>
 #include <vector>
 
diff --git a/llvm/include/llvm/Transforms/Scalar/ConstraintElimination.h \
b/llvm/include/llvm/Transforms/Scalar/ConstraintElimination.h index \
                544a6c2eae552ed..6db317bc2b90e4a 100644
--- a/llvm/include/llvm/Transforms/Scalar/ConstraintElimination.h
+++ b/llvm/include/llvm/Transforms/Scalar/ConstraintElimination.h
@@ -10,6 +10,7 @@
 #define LLVM_TRANSFORMS_SCALAR_CONSTRAINTELIMINATION_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/CorrelatedValuePropagation.h \
b/llvm/include/llvm/Transforms/Scalar/CorrelatedValuePropagation.h index \
                25795de5d951fa2..9767d40e98e68c1 100644
--- a/llvm/include/llvm/Transforms/Scalar/CorrelatedValuePropagation.h
+++ b/llvm/include/llvm/Transforms/Scalar/CorrelatedValuePropagation.h
@@ -10,6 +10,7 @@
 #define LLVM_TRANSFORMS_SCALAR_CORRELATEDVALUEPROPAGATION_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/DCE.h \
b/llvm/include/llvm/Transforms/Scalar/DCE.h index 8d1616a7b75dbc4..34c35000038015b \
                100644
--- a/llvm/include/llvm/Transforms/Scalar/DCE.h
+++ b/llvm/include/llvm/Transforms/Scalar/DCE.h
@@ -14,6 +14,7 @@
 #define LLVM_TRANSFORMS_SCALAR_DCE_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/DFAJumpThreading.h \
b/llvm/include/llvm/Transforms/Scalar/DFAJumpThreading.h index \
                4e9fbf65e16362a..b7b0824b67e4d22 100644
--- a/llvm/include/llvm/Transforms/Scalar/DFAJumpThreading.h
+++ b/llvm/include/llvm/Transforms/Scalar/DFAJumpThreading.h
@@ -14,6 +14,7 @@
 #define LLVM_TRANSFORMS_SCALAR_DFAJUMPTHREADING_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/DeadStoreElimination.h \
b/llvm/include/llvm/Transforms/Scalar/DeadStoreElimination.h index \
                b66b0de90c790be..73e82c7c97aaba6 100644
--- a/llvm/include/llvm/Transforms/Scalar/DeadStoreElimination.h
+++ b/llvm/include/llvm/Transforms/Scalar/DeadStoreElimination.h
@@ -18,6 +18,7 @@
 #define LLVM_TRANSFORMS_SCALAR_DEADSTOREELIMINATION_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/DivRemPairs.h \
b/llvm/include/llvm/Transforms/Scalar/DivRemPairs.h index \
                7401e02cb4ab455..bb490af353ea449 100644
--- a/llvm/include/llvm/Transforms/Scalar/DivRemPairs.h
+++ b/llvm/include/llvm/Transforms/Scalar/DivRemPairs.h
@@ -15,6 +15,7 @@
 #define LLVM_TRANSFORMS_SCALAR_DIVREMPAIRS_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/EarlyCSE.h \
b/llvm/include/llvm/Transforms/Scalar/EarlyCSE.h index \
                877d8145e746c0f..14a65c0d9919ee9 100644
--- a/llvm/include/llvm/Transforms/Scalar/EarlyCSE.h
+++ b/llvm/include/llvm/Transforms/Scalar/EarlyCSE.h
@@ -15,6 +15,7 @@
 #define LLVM_TRANSFORMS_SCALAR_EARLYCSE_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/FlattenCFG.h \
b/llvm/include/llvm/Transforms/Scalar/FlattenCFG.h index \
                ff49a4ab7ceb16f..fdf5c09be42105a 100644
--- a/llvm/include/llvm/Transforms/Scalar/FlattenCFG.h
+++ b/llvm/include/llvm/Transforms/Scalar/FlattenCFG.h
@@ -15,6 +15,7 @@
 #define LLVM_TRANSFORMS_SCALAR_FLATTENCFG_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 struct FlattenCFGPass : PassInfoMixin<FlattenCFGPass> {
diff --git a/llvm/include/llvm/Transforms/Scalar/Float2Int.h \
b/llvm/include/llvm/Transforms/Scalar/Float2Int.h index \
                83be329bed60bab..63e0c3f24bf3277 100644
--- a/llvm/include/llvm/Transforms/Scalar/Float2Int.h
+++ b/llvm/include/llvm/Transforms/Scalar/Float2Int.h
@@ -19,6 +19,7 @@
 #include "llvm/ADT/SetVector.h"
 #include "llvm/IR/ConstantRange.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class DominatorTree;
diff --git a/llvm/include/llvm/Transforms/Scalar/GuardWidening.h \
b/llvm/include/llvm/Transforms/Scalar/GuardWidening.h index \
                fa03d5f678fd40b..5f9aba64d8bddad 100644
--- a/llvm/include/llvm/Transforms/Scalar/GuardWidening.h
+++ b/llvm/include/llvm/Transforms/Scalar/GuardWidening.h
@@ -17,6 +17,7 @@
 
 #include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/IVUsersPrinter.h \
b/llvm/include/llvm/Transforms/Scalar/IVUsersPrinter.h index \
                4136c45e190519e..f5446e4767d2688 100644
--- a/llvm/include/llvm/Transforms/Scalar/IVUsersPrinter.h
+++ b/llvm/include/llvm/Transforms/Scalar/IVUsersPrinter.h
@@ -11,6 +11,7 @@
 
 #include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class LPMUpdater;
diff --git a/llvm/include/llvm/Transforms/Scalar/IndVarSimplify.h \
b/llvm/include/llvm/Transforms/Scalar/IndVarSimplify.h index \
                b5d544f1149c6dd..9589919b06408e9 100644
--- a/llvm/include/llvm/Transforms/Scalar/IndVarSimplify.h
+++ b/llvm/include/llvm/Transforms/Scalar/IndVarSimplify.h
@@ -16,6 +16,7 @@
 
 #include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/InductiveRangeCheckElimination.h \
b/llvm/include/llvm/Transforms/Scalar/InductiveRangeCheckElimination.h index \
                11fb80e494867af..291edd5a33e65a9 100644
--- a/llvm/include/llvm/Transforms/Scalar/InductiveRangeCheckElimination.h
+++ b/llvm/include/llvm/Transforms/Scalar/InductiveRangeCheckElimination.h
@@ -15,6 +15,7 @@
 #define LLVM_TRANSFORMS_SCALAR_INDUCTIVERANGECHECKELIMINATION_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/InferAddressSpaces.h \
b/llvm/include/llvm/Transforms/Scalar/InferAddressSpaces.h index \
                9a56b073f1c6b65..f23143034d56b39 100644
--- a/llvm/include/llvm/Transforms/Scalar/InferAddressSpaces.h
+++ b/llvm/include/llvm/Transforms/Scalar/InferAddressSpaces.h
@@ -10,6 +10,7 @@
 #define LLVM_TRANSFORMS_SCALAR_INFERADDRESSSPACES_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/InstSimplifyPass.h \
b/llvm/include/llvm/Transforms/Scalar/InstSimplifyPass.h index \
                09a4a95401d84cd..54b9c3e7f30f161 100644
--- a/llvm/include/llvm/Transforms/Scalar/InstSimplifyPass.h
+++ b/llvm/include/llvm/Transforms/Scalar/InstSimplifyPass.h
@@ -15,6 +15,7 @@
 #define LLVM_TRANSFORMS_SCALAR_INSTSIMPLIFYPASS_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/JumpThreading.h \
b/llvm/include/llvm/Transforms/Scalar/JumpThreading.h index \
                3364d7eaee42476..1ce6d4dcb25535f 100644
--- a/llvm/include/llvm/Transforms/Scalar/JumpThreading.h
+++ b/llvm/include/llvm/Transforms/Scalar/JumpThreading.h
@@ -22,6 +22,7 @@
 #include "llvm/Analysis/BranchProbabilityInfo.h"
 #include "llvm/Analysis/DomTreeUpdater.h"
 #include "llvm/IR/ValueHandle.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 #include <utility>
 
diff --git a/llvm/include/llvm/Transforms/Scalar/LICM.h \
b/llvm/include/llvm/Transforms/Scalar/LICM.h index f7dd40be47e588b..030196a2b3b9f55 \
                100644
--- a/llvm/include/llvm/Transforms/Scalar/LICM.h
+++ b/llvm/include/llvm/Transforms/Scalar/LICM.h
@@ -35,6 +35,7 @@
 #include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h \
b/llvm/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h index \
                4d1f934ae91d72c..cc65792b0262959 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h
@@ -10,6 +10,7 @@
 #define LLVM_TRANSFORMS_SCALAR_LOOPACCESSANALYSISPRINTER_H
 #include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopBoundSplit.h \
b/llvm/include/llvm/Transforms/Scalar/LoopBoundSplit.h index \
                0c597bf295b2ec5..4c995f61fe81f97 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopBoundSplit.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopBoundSplit.h
@@ -11,6 +11,7 @@
 
 #include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class LPMUpdater;
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopDataPrefetch.h \
b/llvm/include/llvm/Transforms/Scalar/LoopDataPrefetch.h index \
                d5e15ffff07509d..35ee3164aa6a8c3 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopDataPrefetch.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopDataPrefetch.h
@@ -14,6 +14,7 @@
 #define LLVM_TRANSFORMS_SCALAR_LOOPDATAPREFETCH_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopDeletion.h \
b/llvm/include/llvm/Transforms/Scalar/LoopDeletion.h index \
                459a5cd3ece48c1..3ba4ac42b584f57 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopDeletion.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopDeletion.h
@@ -15,6 +15,7 @@
 
 #include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopDistribute.h \
b/llvm/include/llvm/Transforms/Scalar/LoopDistribute.h index \
                1a82176490c50db..8a455c1b0225712 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopDistribute.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopDistribute.h
@@ -17,6 +17,7 @@
 #define LLVM_TRANSFORMS_SCALAR_LOOPDISTRIBUTE_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopFlatten.h \
b/llvm/include/llvm/Transforms/Scalar/LoopFlatten.h index \
                311b843e83b5147..e531c919a48ea56 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopFlatten.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopFlatten.h
@@ -15,6 +15,7 @@
 
 #include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class LPMUpdater;
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopFuse.h \
b/llvm/include/llvm/Transforms/Scalar/LoopFuse.h index \
                d3a02db6bd28d0f..4dc81f8133ddc22 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopFuse.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopFuse.h
@@ -15,6 +15,7 @@
 #define LLVM_TRANSFORMS_SCALAR_LOOPFUSE_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopIdiomRecognize.h \
b/llvm/include/llvm/Transforms/Scalar/LoopIdiomRecognize.h index \
                0c6406d86185185..1766d481cd3fe06 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopIdiomRecognize.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopIdiomRecognize.h
@@ -17,6 +17,7 @@
 
 #include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopInstSimplify.h \
b/llvm/include/llvm/Transforms/Scalar/LoopInstSimplify.h index \
                f6e86d11ed9561c..9c40b4a1bd2f6e6 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopInstSimplify.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopInstSimplify.h
@@ -15,6 +15,7 @@
 
 #include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopInterchange.h \
b/llvm/include/llvm/Transforms/Scalar/LoopInterchange.h index \
                8fa14d747f5c05c..b76711a604bd1d6 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopInterchange.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopInterchange.h
@@ -11,6 +11,7 @@
 
 #include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopLoadElimination.h \
b/llvm/include/llvm/Transforms/Scalar/LoopLoadElimination.h index \
                65b9aabb8f51893..40d19fa8f8c01e0 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopLoadElimination.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopLoadElimination.h
@@ -17,6 +17,7 @@
 #define LLVM_TRANSFORMS_SCALAR_LOOPLOADELIMINATION_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h \
b/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h index \
                c8c4d5e9a53922d..4515ab88996a763 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h
@@ -41,6 +41,7 @@
 #include "llvm/Analysis/LoopInfo.h"
 #include "llvm/Analysis/LoopNestAnalysis.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Transforms/Utils/LCSSA.h"
 #include "llvm/Transforms/Utils/LoopSimplify.h"
 #include "llvm/Transforms/Utils/LoopUtils.h"
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopPredication.h \
b/llvm/include/llvm/Transforms/Scalar/LoopPredication.h index \
                83f5336034192e8..264189f988c1722 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopPredication.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopPredication.h
@@ -16,6 +16,7 @@
 
 #include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopReroll.h \
b/llvm/include/llvm/Transforms/Scalar/LoopReroll.h index \
                496e8df85ea05d1..0e9a92d4b020832 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopReroll.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopReroll.h
@@ -10,6 +10,7 @@
 #define LLVM_TRANSFORMS_SCALAR_LOOPREROLL_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Transforms/Scalar/LoopPassManager.h"
 
 namespace llvm {
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopRotation.h \
b/llvm/include/llvm/Transforms/Scalar/LoopRotation.h index \
                cd108f7383e4c5c..89b8a4f35b3e840 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopRotation.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopRotation.h
@@ -15,6 +15,7 @@
 
 #include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class LPMUpdater;
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopSimplifyCFG.h \
b/llvm/include/llvm/Transforms/Scalar/LoopSimplifyCFG.h index \
                82c8a4406d00a3b..e35265f40291b34 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopSimplifyCFG.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopSimplifyCFG.h
@@ -18,6 +18,7 @@
 
 #include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopSink.h \
b/llvm/include/llvm/Transforms/Scalar/LoopSink.h index \
                26e50590a62572b..08736bad9750344 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopSink.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopSink.h
@@ -14,6 +14,7 @@
 #define LLVM_TRANSFORMS_SCALAR_LOOPSINK_H
 
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopStrengthReduce.h \
b/llvm/include/llvm/Transforms/Scalar/LoopStrengthReduce.h index \
                5cf805bc49393a8..3f8269a68ab1843 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopStrengthReduce.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopStrengthReduce.h
@@ -23,6 +23,7 @@
 
 #include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h \
b/llvm/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h index \
                54f70d7ed4b3916..9a6b7bfc124d101 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h
@@ -11,6 +11,7 @@
 
 #include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class LPMUpdater;
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h \
b/llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h index \
                8d8c2f254f02f44..696abf9cfd5c759 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h
@@ -12,6 +12,7 @@
 #include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Support/CommandLine.h"
+#include "llvm/Support/Compiler.h"
 #include <optional>
 
 namespace llvm {
diff --git a/llvm/include/llvm/Transforms/Scalar/LoopVersioningLICM.h \
b/llvm/include/llvm/Transforms/Scalar/LoopVersioningLICM.h index \
                04e0012330da7d1..eee9ad538b0ec16 100644
--- a/llvm/include/llvm/Transforms/Scalar/LoopVersioningLICM.h
+++ b/llvm/include/llvm/Transforms/Scalar/LoopVersioningLICM.h
@@ -11,6 +11,7 @@
 
 #include "llvm/Analysis/LoopAnalysisManager.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/Support/Compiler.h"
 
 namespace llvm {
 class LPMUpdater;
diff --git a/llvm/include/llvm/Transforms/Scalar/LowerAtomicPa


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic