Skip to content

Commit 05da2fe

Browse files
committed
Sink all InitializePasses.h includes
This file lists every pass in LLVM, and is included by Pass.h, which is very popular. Every time we add, remove, or rename a pass in LLVM, it caused lots of recompilation. I found this fact by looking at this table, which is sorted by the number of times a file was changed over the last 100,000 git commits multiplied by the number of object files that depend on it in the current checkout: recompiles touches affected_files header 342380 95 3604 llvm/include/llvm/ADT/STLExtras.h 314730 234 1345 llvm/include/llvm/InitializePasses.h 307036 118 2602 llvm/include/llvm/ADT/APInt.h 213049 59 3611 llvm/include/llvm/Support/MathExtras.h 170422 47 3626 llvm/include/llvm/Support/Compiler.h 162225 45 3605 llvm/include/llvm/ADT/Optional.h 158319 63 2513 llvm/include/llvm/ADT/Triple.h 140322 39 3598 llvm/include/llvm/ADT/StringRef.h 137647 59 2333 llvm/include/llvm/Support/Error.h 131619 73 1803 llvm/include/llvm/Support/FileSystem.h Before this change, touching InitializePasses.h would cause 1345 files to recompile. After this change, touching it only causes 550 compiles in an incremental rebuild. Reviewers: bkramer, asbirlea, bollu, jdoerfert Differential Revision: https://reviews.llvm.org/D70211
1 parent a36f316 commit 05da2fe

File tree

393 files changed

+596
-198
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

393 files changed

+596
-198
lines changed

llvm/examples/IRTransforms/SimplifyCFG.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
#include "llvm/IR/Function.h"
4141
#include "llvm/IR/PassManager.h"
4242
#include "llvm/IR/PatternMatch.h"
43+
#include "llvm/InitializePasses.h"
4344
#include "llvm/Support/CommandLine.h"
4445

4546
using namespace llvm;

llvm/include/llvm/Analysis/AliasAnalysis.h

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1179,14 +1179,9 @@ struct ExternalAAWrapperPass : ImmutablePass {
11791179

11801180
static char ID;
11811181

1182-
ExternalAAWrapperPass() : ImmutablePass(ID) {
1183-
initializeExternalAAWrapperPassPass(*PassRegistry::getPassRegistry());
1184-
}
1182+
ExternalAAWrapperPass();
11851183

1186-
explicit ExternalAAWrapperPass(CallbackT CB)
1187-
: ImmutablePass(ID), CB(std::move(CB)) {
1188-
initializeExternalAAWrapperPassPass(*PassRegistry::getPassRegistry());
1189-
}
1184+
explicit ExternalAAWrapperPass(CallbackT CB);
11901185

11911186
void getAnalysisUsage(AnalysisUsage &AU) const override {
11921187
AU.setPreservesAll();

llvm/include/llvm/Analysis/BranchProbabilityInfo.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -233,10 +233,7 @@ class BranchProbabilityInfoWrapperPass : public FunctionPass {
233233
public:
234234
static char ID;
235235

236-
BranchProbabilityInfoWrapperPass() : FunctionPass(ID) {
237-
initializeBranchProbabilityInfoWrapperPassPass(
238-
*PassRegistry::getPassRegistry());
239-
}
236+
BranchProbabilityInfoWrapperPass();
240237

241238
BranchProbabilityInfo &getBPI() { return BPI; }
242239
const BranchProbabilityInfo &getBPI() const { return BPI; }

llvm/include/llvm/Analysis/DependenceAnalysis.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -954,10 +954,7 @@ template <typename T> class ArrayRef;
954954
class DependenceAnalysisWrapperPass : public FunctionPass {
955955
public:
956956
static char ID; // Class identification, replacement for typeinfo
957-
DependenceAnalysisWrapperPass() : FunctionPass(ID) {
958-
initializeDependenceAnalysisWrapperPassPass(
959-
*PassRegistry::getPassRegistry());
960-
}
957+
DependenceAnalysisWrapperPass();
961958

962959
bool runOnFunction(Function &F) override;
963960
void releaseMemory() override;

llvm/include/llvm/Analysis/IntervalPartition.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,7 @@ class IntervalPartition : public FunctionPass {
5050
public:
5151
static char ID; // Pass identification, replacement for typeid
5252

53-
IntervalPartition() : FunctionPass(ID) {
54-
initializeIntervalPartitionPass(*PassRegistry::getPassRegistry());
55-
}
53+
IntervalPartition();
5654

5755
// run - Calculate the interval partition for this function
5856
bool runOnFunction(Function &F) override;

llvm/include/llvm/Analysis/LazyValueInfo.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -144,9 +144,7 @@ class LazyValueInfoWrapperPass : public FunctionPass {
144144
void operator=(const LazyValueInfoWrapperPass&) = delete;
145145
public:
146146
static char ID;
147-
LazyValueInfoWrapperPass() : FunctionPass(ID) {
148-
initializeLazyValueInfoWrapperPassPass(*PassRegistry::getPassRegistry());
149-
}
147+
LazyValueInfoWrapperPass();
150148
~LazyValueInfoWrapperPass() override {
151149
assert(!Info.PImpl && "releaseMemory not called");
152150
}

llvm/include/llvm/Analysis/LegacyDivergenceAnalysis.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,18 @@
1616
#define LLVM_ANALYSIS_LEGACY_DIVERGENCE_ANALYSIS_H
1717

1818
#include "llvm/ADT/DenseSet.h"
19-
#include "llvm/IR/Function.h"
20-
#include "llvm/Pass.h"
2119
#include "llvm/Analysis/DivergenceAnalysis.h"
20+
#include "llvm/Pass.h"
2221

2322
namespace llvm {
2423
class Value;
24+
class Function;
2525
class GPUDivergenceAnalysis;
2626
class LegacyDivergenceAnalysis : public FunctionPass {
2727
public:
2828
static char ID;
2929

30-
LegacyDivergenceAnalysis() : FunctionPass(ID) {
31-
initializeLegacyDivergenceAnalysisPass(*PassRegistry::getPassRegistry());
32-
}
30+
LegacyDivergenceAnalysis();
3331

3432
void getAnalysisUsage(AnalysisUsage &AU) const override;
3533

llvm/include/llvm/Analysis/LoopAccessAnalysis.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -724,9 +724,7 @@ class LoopAccessLegacyAnalysis : public FunctionPass {
724724
public:
725725
static char ID;
726726

727-
LoopAccessLegacyAnalysis() : FunctionPass(ID) {
728-
initializeLoopAccessLegacyAnalysisPass(*PassRegistry::getPassRegistry());
729-
}
727+
LoopAccessLegacyAnalysis();
730728

731729
bool runOnFunction(Function &F) override;
732730

llvm/include/llvm/Analysis/LoopInfo.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1211,9 +1211,7 @@ class LoopInfoWrapperPass : public FunctionPass {
12111211
public:
12121212
static char ID; // Pass identification, replacement for typeid
12131213

1214-
LoopInfoWrapperPass() : FunctionPass(ID) {
1215-
initializeLoopInfoWrapperPassPass(*PassRegistry::getPassRegistry());
1216-
}
1214+
LoopInfoWrapperPass();
12171215

12181216
LoopInfo &getLoopInfo() { return LI; }
12191217
const LoopInfo &getLoopInfo() const { return LI; }

llvm/include/llvm/Analysis/LoopPass.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,7 @@ class LPPassManager : public FunctionPass, public PMDataManager {
162162
// pass manager calls lcssa verification for the current loop.
163163
struct LCSSAVerificationPass : public FunctionPass {
164164
static char ID;
165-
LCSSAVerificationPass() : FunctionPass(ID) {
166-
initializeLCSSAVerificationPassPass(*PassRegistry::getPassRegistry());
167-
}
165+
LCSSAVerificationPass();
168166

169167
bool runOnFunction(Function &F) override { return false; }
170168

llvm/include/llvm/Analysis/PostDominators.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,7 @@ struct PostDominatorTreeWrapperPass : public FunctionPass {
6868

6969
PostDominatorTree DT;
7070

71-
PostDominatorTreeWrapperPass() : FunctionPass(ID) {
72-
initializePostDominatorTreeWrapperPassPass(*PassRegistry::getPassRegistry());
73-
}
71+
PostDominatorTreeWrapperPass();
7472

7573
PostDominatorTree &getPostDomTree() { return DT; }
7674
const PostDominatorTree &getPostDomTree() const { return DT; }

llvm/include/llvm/CodeGen/GlobalISel/CSEInfo.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -220,9 +220,7 @@ class GISelCSEAnalysisWrapperPass : public MachineFunctionPass {
220220

221221
public:
222222
static char ID;
223-
GISelCSEAnalysisWrapperPass() : MachineFunctionPass(ID) {
224-
initializeGISelCSEAnalysisWrapperPassPass(*PassRegistry::getPassRegistry());
225-
}
223+
GISelCSEAnalysisWrapperPass();
226224

227225
void getAnalysisUsage(AnalysisUsage &AU) const override;
228226

llvm/include/llvm/CodeGen/LiveStacks.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
#include "llvm/CodeGen/LiveInterval.h"
1919
#include "llvm/CodeGen/MachineFunctionPass.h"
20+
#include "llvm/InitializePasses.h"
2021
#include "llvm/Pass.h"
2122
#include <cassert>
2223
#include <map>

llvm/include/llvm/CodeGen/LiveVariables.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
#include "llvm/CodeGen/MachineFunctionPass.h"
3737
#include "llvm/CodeGen/MachineInstr.h"
3838
#include "llvm/CodeGen/TargetRegisterInfo.h"
39+
#include "llvm/InitializePasses.h"
3940

4041
namespace llvm {
4142

llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,7 @@ class MachineBranchProbabilityInfo : public ImmutablePass {
3535
public:
3636
static char ID;
3737

38-
MachineBranchProbabilityInfo() : ImmutablePass(ID) {
39-
PassRegistry &Registry = *PassRegistry::getPassRegistry();
40-
initializeMachineBranchProbabilityInfoPass(Registry);
41-
}
38+
MachineBranchProbabilityInfo();
4239

4340
void getAnalysisUsage(AnalysisUsage &AU) const override {
4441
AU.setPreservesAll();

llvm/include/llvm/CodeGen/MachineLoopInfo.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,7 @@ class MachineLoopInfo : public MachineFunctionPass {
8989
public:
9090
static char ID; // Pass identification, replacement for typeid
9191

92-
MachineLoopInfo() : MachineFunctionPass(ID) {
93-
initializeMachineLoopInfoPass(*PassRegistry::getPassRegistry());
94-
}
92+
MachineLoopInfo();
9593
explicit MachineLoopInfo(MachineDominatorTree &MDT)
9694
: MachineFunctionPass(ID) {
9795
calculate(MDT);

llvm/include/llvm/CodeGen/MachinePipeliner.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
#include "llvm/CodeGen/RegisterClassInfo.h"
4747
#include "llvm/CodeGen/ScheduleDAGInstrs.h"
4848
#include "llvm/CodeGen/TargetInstrInfo.h"
49+
#include "llvm/InitializePasses.h"
4950

5051
namespace llvm {
5152

llvm/include/llvm/CodeGen/ReachingDefAnalysis.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include "llvm/ADT/SmallVector.h"
2626
#include "llvm/CodeGen/LoopTraversal.h"
2727
#include "llvm/CodeGen/MachineFunctionPass.h"
28+
#include "llvm/InitializePasses.h"
2829

2930
namespace llvm {
3031

llvm/include/llvm/CodeGen/RegisterUsageInfo.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include "llvm/ADT/ArrayRef.h"
2222
#include "llvm/ADT/DenseMap.h"
2323
#include "llvm/IR/Instructions.h"
24+
#include "llvm/InitializePasses.h"
2425
#include "llvm/Pass.h"
2526
#include <cstdint>
2627
#include <vector>

llvm/include/llvm/CodeGen/SlotIndexes.h

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -347,14 +347,9 @@ class raw_ostream;
347347
public:
348348
static char ID;
349349

350-
SlotIndexes() : MachineFunctionPass(ID), mf(nullptr) {
351-
initializeSlotIndexesPass(*PassRegistry::getPassRegistry());
352-
}
350+
SlotIndexes();
353351

354-
~SlotIndexes() override {
355-
// The indexList's nodes are all allocated in the BumpPtrAllocator.
356-
indexList.clearAndLeakNodesUnsafely();
357-
}
352+
~SlotIndexes() override;
358353

359354
void getAnalysisUsage(AnalysisUsage &au) const override;
360355
void releaseMemory() override;

llvm/include/llvm/CodeGen/StackProtector.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,7 @@ class StackProtector : public FunctionPass {
104104
public:
105105
static char ID; // Pass identification, replacement for typeid.
106106

107-
StackProtector() : FunctionPass(ID), SSPBufferSize(8) {
108-
initializeStackProtectorPass(*PassRegistry::getPassRegistry());
109-
}
107+
StackProtector();
110108

111109
void getAnalysisUsage(AnalysisUsage &AU) const override;
112110

llvm/include/llvm/IR/Dominators.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -262,9 +262,7 @@ class DominatorTreeWrapperPass : public FunctionPass {
262262
public:
263263
static char ID;
264264

265-
DominatorTreeWrapperPass() : FunctionPass(ID) {
266-
initializeDominatorTreeWrapperPassPass(*PassRegistry::getPassRegistry());
267-
}
265+
DominatorTreeWrapperPass();
268266

269267
DominatorTree &getDomTree() { return DT; }
270268
const DominatorTree &getDomTree() const { return DT; }

llvm/include/llvm/Pass.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,6 @@ extern bool TimePassesIsEnabled;
312312

313313
// Include support files that contain important APIs commonly used by Passes,
314314
// but that we want to separate out to make it easier to read the header files.
315-
#include "llvm/InitializePasses.h"
316315
#include "llvm/PassAnalysisSupport.h"
317316
#include "llvm/PassSupport.h"
318317

llvm/include/llvm/Transforms/InstCombine/InstCombine.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,7 @@ class InstructionCombiningPass : public FunctionPass {
4646
public:
4747
static char ID; // Pass identification, replacement for typeid
4848

49-
InstructionCombiningPass(bool ExpensiveCombines = true)
50-
: FunctionPass(ID), ExpensiveCombines(ExpensiveCombines) {
51-
initializeInstructionCombiningPassPass(*PassRegistry::getPassRegistry());
52-
}
49+
InstructionCombiningPass(bool ExpensiveCombines = true);
5350

5451
void getAnalysisUsage(AnalysisUsage &AU) const override;
5552
bool runOnFunction(Function &F) override;

llvm/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,7 @@ struct UnifyFunctionExitNodes : public FunctionPass {
2929

3030
public:
3131
static char ID; // Pass identification, replacement for typeid
32-
UnifyFunctionExitNodes() : FunctionPass(ID) {
33-
initializeUnifyFunctionExitNodesPass(*PassRegistry::getPassRegistry());
34-
}
32+
UnifyFunctionExitNodes();
3533

3634
// We can preserve non-critical-edgeness when we unify function exit nodes
3735
void getAnalysisUsage(AnalysisUsage &AU) const override;

llvm/lib/Analysis/AliasAnalysis.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
#include "llvm/IR/Module.h"
4545
#include "llvm/IR/Type.h"
4646
#include "llvm/IR/Value.h"
47+
#include "llvm/InitializePasses.h"
4748
#include "llvm/Pass.h"
4849
#include "llvm/Support/AtomicOrdering.h"
4950
#include "llvm/Support/Casting.h"
@@ -734,6 +735,15 @@ namespace {
734735

735736
} // end anonymous namespace
736737

738+
ExternalAAWrapperPass::ExternalAAWrapperPass() : ImmutablePass(ID) {
739+
initializeExternalAAWrapperPassPass(*PassRegistry::getPassRegistry());
740+
}
741+
742+
ExternalAAWrapperPass::ExternalAAWrapperPass(CallbackT CB)
743+
: ImmutablePass(ID), CB(std::move(CB)) {
744+
initializeExternalAAWrapperPassPass(*PassRegistry::getPassRegistry());
745+
}
746+
737747
char ExternalAAWrapperPass::ID = 0;
738748

739749
INITIALIZE_PASS(ExternalAAWrapperPass, "external-aa", "External Alias Analysis",

llvm/lib/Analysis/AliasAnalysisEvaluator.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "llvm/IR/InstIterator.h"
1717
#include "llvm/IR/Instructions.h"
1818
#include "llvm/IR/Module.h"
19+
#include "llvm/InitializePasses.h"
1920
#include "llvm/Pass.h"
2021
#include "llvm/Support/CommandLine.h"
2122
#include "llvm/Support/Debug.h"

llvm/lib/Analysis/AliasSetTracker.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#include "llvm/IR/Module.h"
2828
#include "llvm/IR/PatternMatch.h"
2929
#include "llvm/IR/Value.h"
30+
#include "llvm/InitializePasses.h"
3031
#include "llvm/Pass.h"
3132
#include "llvm/Support/AtomicOrdering.h"
3233
#include "llvm/Support/Casting.h"

llvm/lib/Analysis/AssumptionCache.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "llvm/IR/Intrinsics.h"
2424
#include "llvm/IR/PassManager.h"
2525
#include "llvm/IR/PatternMatch.h"
26+
#include "llvm/InitializePasses.h"
2627
#include "llvm/Pass.h"
2728
#include "llvm/Support/Casting.h"
2829
#include "llvm/Support/CommandLine.h"

llvm/lib/Analysis/BasicAliasAnalysis.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525
#include "llvm/Analysis/LoopInfo.h"
2626
#include "llvm/Analysis/MemoryBuiltins.h"
2727
#include "llvm/Analysis/MemoryLocation.h"
28+
#include "llvm/Analysis/PhiValues.h"
2829
#include "llvm/Analysis/TargetLibraryInfo.h"
2930
#include "llvm/Analysis/ValueTracking.h"
30-
#include "llvm/Analysis/PhiValues.h"
3131
#include "llvm/IR/Argument.h"
3232
#include "llvm/IR/Attributes.h"
3333
#include "llvm/IR/Constant.h"
@@ -49,6 +49,7 @@
4949
#include "llvm/IR/Type.h"
5050
#include "llvm/IR/User.h"
5151
#include "llvm/IR/Value.h"
52+
#include "llvm/InitializePasses.h"
5253
#include "llvm/Pass.h"
5354
#include "llvm/Support/Casting.h"
5455
#include "llvm/Support/CommandLine.h"
@@ -2049,7 +2050,7 @@ BasicAAResult BasicAA::run(Function &F, FunctionAnalysisManager &AM) {
20492050
}
20502051

20512052
BasicAAWrapperPass::BasicAAWrapperPass() : FunctionPass(ID) {
2052-
initializeBasicAAWrapperPassPass(*PassRegistry::getPassRegistry());
2053+
initializeBasicAAWrapperPassPass(*PassRegistry::getPassRegistry());
20532054
}
20542055

20552056
char BasicAAWrapperPass::ID = 0;

llvm/lib/Analysis/BlockFrequencyInfo.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "llvm/IR/CFG.h"
2121
#include "llvm/IR/Function.h"
2222
#include "llvm/IR/PassManager.h"
23+
#include "llvm/InitializePasses.h"
2324
#include "llvm/Pass.h"
2425
#include "llvm/Support/CommandLine.h"
2526
#include "llvm/Support/GraphWriter.h"

llvm/lib/Analysis/BranchProbabilityInfo.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
#include "llvm/IR/PassManager.h"
3232
#include "llvm/IR/Type.h"
3333
#include "llvm/IR/Value.h"
34+
#include "llvm/InitializePasses.h"
3435
#include "llvm/Pass.h"
3536
#include "llvm/Support/BranchProbability.h"
3637
#include "llvm/Support/Casting.h"
@@ -61,6 +62,12 @@ INITIALIZE_PASS_DEPENDENCY(TargetLibraryInfoWrapperPass)
6162
INITIALIZE_PASS_END(BranchProbabilityInfoWrapperPass, "branch-prob",
6263
"Branch Probability Analysis", false, true)
6364

65+
BranchProbabilityInfoWrapperPass::BranchProbabilityInfoWrapperPass()
66+
: FunctionPass(ID) {
67+
initializeBranchProbabilityInfoWrapperPassPass(
68+
*PassRegistry::getPassRegistry());
69+
}
70+
6471
char BranchProbabilityInfoWrapperPass::ID = 0;
6572

6673
// Weights are for internal use only. They are used by heuristics to help to

llvm/lib/Analysis/CFGPrinter.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
//===----------------------------------------------------------------------===//
1919

2020
#include "llvm/Analysis/CFGPrinter.h"
21+
#include "llvm/InitializePasses.h"
2122
#include "llvm/Pass.h"
2223
#include "llvm/Support/FileSystem.h"
2324
using namespace llvm;

0 commit comments

Comments
 (0)