@@ -67,9 +67,7 @@ static llvm::cas::CASID createCompileJobCacheKeyForArgs(
67
67
return llvm::cantFail (Builder.create (CAS)).getID ();
68
68
}
69
69
70
- static std::optional<llvm::cas::CASID>
71
- createCompileJobCacheKeyImpl (ObjectStore &CAS, DiagnosticsEngine &Diags,
72
- CompilerInvocation CI) {
70
+ static void canonicalizeForCacheKey (CompilerInvocation &CI) {
73
71
FrontendOptions &FrontendOpts = CI.getFrontendOpts ();
74
72
DependencyOutputOptions &DepOpts = CI.getDependencyOutputOpts ();
75
73
@@ -136,7 +134,12 @@ createCompileJobCacheKeyImpl(ObjectStore &CAS, DiagnosticsEngine &Diags,
136
134
// These are intended for caching introspection, they are not cached.
137
135
return Remark.starts_with (" compile-job-cache" );
138
136
});
137
+ }
139
138
139
+ static std::optional<llvm::cas::CASID>
140
+ createCompileJobCacheKeyImpl (ObjectStore &CAS, DiagnosticsEngine &Diags,
141
+ CompilerInvocation CI) {
142
+ canonicalizeForCacheKey (CI);
140
143
// Generate a new command-line in case Invocation has been canonicalized.
141
144
llvm::BumpPtrAllocator Alloc;
142
145
llvm::StringSaver Saver (Alloc);
@@ -182,7 +185,7 @@ createCompileJobCacheKeyImpl(ObjectStore &CAS, DiagnosticsEngine &Diags,
182
185
}
183
186
184
187
static CompileJobCachingOptions
185
- canonicalizeForCaching (llvm::cas::ObjectStore &CAS, DiagnosticsEngine &Diags ,
188
+ canonicalizeForCaching (const llvm::cas::ObjectStore &CAS,
186
189
CompilerInvocation &Invocation) {
187
190
CompileJobCachingOptions Opts;
188
191
FrontendOptions &FrontendOpts = Invocation.getFrontendOpts ();
@@ -220,6 +223,12 @@ canonicalizeForCaching(llvm::cas::ObjectStore &CAS, DiagnosticsEngine &Diags,
220
223
return Opts;
221
224
}
222
225
226
+ void clang::canonicalizeCASCompilerInvocation (const ObjectStore &CAS,
227
+ CompilerInvocation &CI) {
228
+ (void )canonicalizeForCaching (CAS, CI);
229
+ canonicalizeForCacheKey (CI);
230
+ }
231
+
223
232
std::optional<std::pair<llvm::cas::CASID, llvm::cas::CASID>>
224
233
clang::canonicalizeAndCreateCacheKeys (ObjectStore &CAS,
225
234
ActionCache &Cache,
@@ -231,7 +240,7 @@ clang::canonicalizeAndCreateCacheKeys(ObjectStore &CAS,
231
240
CASOptions CASOpts (CI.getCASOpts ());
232
241
CASOpts.freezeConfig (Diags);
233
242
234
- Opts = canonicalizeForCaching (CAS, Diags, CI);
243
+ Opts = canonicalizeForCaching (CAS, CI);
235
244
auto CacheKey = createCompileJobCacheKeyImpl (CAS, Diags, CI);
236
245
if (!CacheKey)
237
246
return std::nullopt;
@@ -265,7 +274,7 @@ clang::canonicalizeAndCreateCacheKeys(ObjectStore &CAS,
265
274
CI.getFrontendOpts ().CASInputFileCacheKey .clear ();
266
275
267
276
CompilerInvocation CICopy = CI;
268
- (void )canonicalizeForCaching (CAS, Diags, CICopy);
277
+ (void )canonicalizeForCaching (CAS, CICopy);
269
278
auto CanonicalCacheKey = createCompileJobCacheKeyImpl (CAS, Diags, CICopy);
270
279
if (!CanonicalCacheKey)
271
280
return std::nullopt;
@@ -277,15 +286,15 @@ std::optional<llvm::cas::CASID>
277
286
clang::createCompileJobCacheKey (ObjectStore &CAS, DiagnosticsEngine &Diags,
278
287
const CompilerInvocation &OriginalCI) {
279
288
CompilerInvocation CI (OriginalCI);
280
- (void )canonicalizeForCaching (CAS, Diags, CI);
289
+ (void )canonicalizeForCaching (CAS, CI);
281
290
return createCompileJobCacheKeyImpl (CAS, Diags, std::move (CI));
282
291
}
283
292
284
293
std::optional<llvm::cas::CASID>
285
294
clang::createCompileJobCacheKey (ObjectStore &CAS, DiagnosticsEngine &Diags,
286
295
const CowCompilerInvocation &OriginalCI) {
287
296
CompilerInvocation CI (OriginalCI);
288
- (void )canonicalizeForCaching (CAS, Diags, CI);
297
+ (void )canonicalizeForCaching (CAS, CI);
289
298
return createCompileJobCacheKeyImpl (CAS, Diags, std::move (CI));
290
299
}
291
300
0 commit comments