37
37
#include " llvm/Support/ErrorOr.h"
38
38
#include " llvm/Support/FileSystem.h"
39
39
#include " llvm/Support/MD5.h"
40
+ #include " llvm/Support/ManagedStatic.h"
40
41
#include " llvm/Support/MemoryBuffer.h"
41
42
#include " llvm/Support/Path.h"
42
43
#include " llvm/Support/Program.h"
@@ -63,9 +64,17 @@ using namespace llvm;
63
64
using namespace llvm ::object;
64
65
using namespace clang ;
65
66
66
- static llvm::TimerGroup
67
- ClangOffloadBundlerTimerGroup (" Clang Offload Bundler Timer Group" ,
68
- " Timer group for clang offload bundler" );
67
+ namespace {
68
+ struct CreateClangOffloadBundlerTimerGroup {
69
+ static void *call () {
70
+ return new TimerGroup (" Clang Offload Bundler Timer Group" ,
71
+ " Timer group for clang offload bundler" );
72
+ }
73
+ };
74
+ } // namespace
75
+ static llvm::ManagedStatic<llvm::TimerGroup,
76
+ CreateClangOffloadBundlerTimerGroup>
77
+ ClangOffloadBundlerTimerGroup;
69
78
70
79
// / Magic string that marks the existence of offloading data.
71
80
#define OFFLOAD_BUNDLER_MAGIC_STR " __CLANG_OFFLOAD_BUNDLE__"
@@ -987,7 +996,7 @@ CompressedOffloadBundle::compress(llvm::compression::Params P,
987
996
" Compression not supported" );
988
997
989
998
llvm::Timer HashTimer (" Hash Calculation Timer" , " Hash calculation time" ,
990
- ClangOffloadBundlerTimerGroup);
999
+ * ClangOffloadBundlerTimerGroup);
991
1000
if (Verbose)
992
1001
HashTimer.startTimer ();
993
1002
llvm::MD5 Hash;
@@ -1004,7 +1013,7 @@ CompressedOffloadBundle::compress(llvm::compression::Params P,
1004
1013
Input.getBuffer ().size ());
1005
1014
1006
1015
llvm::Timer CompressTimer (" Compression Timer" , " Compression time" ,
1007
- ClangOffloadBundlerTimerGroup);
1016
+ * ClangOffloadBundlerTimerGroup);
1008
1017
if (Verbose)
1009
1018
CompressTimer.startTimer ();
1010
1019
llvm::compression::compress (P, BufferUint8, CompressedBuffer);
@@ -1119,7 +1128,7 @@ CompressedOffloadBundle::decompress(const llvm::MemoryBuffer &Input,
1119
1128
" Unknown compressing method" );
1120
1129
1121
1130
llvm::Timer DecompressTimer (" Decompression Timer" , " Decompression time" ,
1122
- ClangOffloadBundlerTimerGroup);
1131
+ * ClangOffloadBundlerTimerGroup);
1123
1132
if (Verbose)
1124
1133
DecompressTimer.startTimer ();
1125
1134
@@ -1141,7 +1150,7 @@ CompressedOffloadBundle::decompress(const llvm::MemoryBuffer &Input,
1141
1150
// Recalculate MD5 hash for integrity check
1142
1151
llvm::Timer HashRecalcTimer (" Hash Recalculation Timer" ,
1143
1152
" Hash recalculation time" ,
1144
- ClangOffloadBundlerTimerGroup);
1153
+ * ClangOffloadBundlerTimerGroup);
1145
1154
HashRecalcTimer.startTimer ();
1146
1155
llvm::MD5 Hash;
1147
1156
llvm::MD5::MD5Result Result;
0 commit comments