@@ -305,7 +305,10 @@ class BackgroundQueue {
305
305
void queueWork (std::function<void ()> work, bool reap);
306
306
};
307
307
308
- #include < chrono>
308
+ // #ifndef NDEBUG
309
+ #include < iomanip>
310
+ #include < iostream>
311
+ // #endif
309
312
310
313
// Most input files have been mapped but not yet paged in.
311
314
// This code forces the page-ins on multiple threads so
@@ -317,28 +320,7 @@ void multiThreadedPageInBackground(DeferredFiles &deferred) {
317
320
static std::atomic_uint64_t totalBytes = 0 ;
318
321
std::atomic_int index = 0 , included = 0 ;
319
322
auto t0 = high_resolution_clock::now ();
320
- #if 0
321
- ThreadPoolStrategy oldStrategy = llvm::parallel::strategy;
322
- (void)llvm::make_scope_exit([&]() { llvm::parallel::strategy = oldStrategy; });
323
- llvm::parallel::strategy = llvm::hardware_concurrency(config->readThreads);
324
-
325
- parallelTransformReduce(deferred, 0,
326
- [](size_t acc, size_t size) { return acc + size; },
327
- [&](DeferredFile &file) {
328
- const StringRef &buffer = file.buffer.getBuffer();
329
- size_t size = buffer.size();
330
- totalBytes += size;
331
- if (size > largeArchive)
332
- return size;
333
323
334
- included += 1;
335
- for (const char *page = buffer.data(), *end = page + buffer.size();
336
- page < end; page += pageSize)
337
- LLVM_ATTRIBUTE_UNUSED volatile char t = *page;
338
- return buffer.size();
339
- }
340
- );
341
- #else
342
324
parallelFor (0 , config->readThreads , [&](size_t I) {
343
325
while (true ) {
344
326
int localIndex = index.fetch_add (1 );
@@ -357,12 +339,14 @@ void multiThreadedPageInBackground(DeferredFiles &deferred) {
357
339
LLVM_ATTRIBUTE_UNUSED volatile char t = *page;
358
340
}
359
341
});
360
- #endif
361
- auto dt = high_resolution_clock::now () - t0;
342
+
343
+ LLVM_ATTRIBUTE_UNUSED auto dt = high_resolution_clock::now () - t0;
344
+ // LLVM_DEBUG(;
362
345
if (Process::GetEnv (" LLD_MULTI_THREAD_PAGE" ))
363
- llvm::dbgs () << " multiThreadedPageIn " << totalBytes << " /" << included
364
- << " /" << deferred.size () << " /"
365
- << duration_cast<milliseconds>(dt).count () / 1000 . << " \n " ;
346
+ std::cerr << " multiThreadedPageIn " << totalBytes << " /" << included << " /"
347
+ << deferred.size () << " /" << std::setprecision (4 )
348
+ << duration_cast<milliseconds>(dt).count () / 1000 . << " \n " ;
349
+ // );
366
350
}
367
351
368
352
void BackgroundQueue::queueWork (std::function<void ()> work, bool reap) {
0 commit comments