OLD | NEW |
---|---|
1 //===- subzero/src/IceGlobalContext.cpp - Global context defs -------------===// | 1 //===- subzero/src/IceGlobalContext.cpp - Global context defs -------------===// |
2 // | 2 // |
3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 /// | 9 /// |
10 /// \file | 10 /// \file |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
251 OstreamLocker _(Ctx); | 251 OstreamLocker _(Ctx); |
252 Ostream &Str = Ctx->getStrDump(); | 252 Ostream &Str = Ctx->getStrDump(); |
253 const std::string Name = | 253 const std::string Name = |
254 (Func == nullptr ? "_FINAL_" : Func->getFunctionNameAndSize()); | 254 (Func == nullptr ? "_FINAL_" : Func->getFunctionNameAndSize()); |
255 #define X(str, tag) \ | 255 #define X(str, tag) \ |
256 Str << "|" << Name << "|" str "|" << Stats[CS_##tag] << "\n"; | 256 Str << "|" << Name << "|" str "|" << Stats[CS_##tag] << "\n"; |
257 CODESTATS_TABLE | 257 CODESTATS_TABLE |
258 #undef X | 258 #undef X |
259 Str << "|" << Name << "|Spills+Fills|" | 259 Str << "|" << Name << "|Spills+Fills|" |
260 << Stats[CS_NumSpills] + Stats[CS_NumFills] << "\n"; | 260 << Stats[CS_NumSpills] + Stats[CS_NumFills] << "\n"; |
261 Str << "|" << Name << "|Memory Usage|"; | 261 Str << "|" << Name << "|Memory Usage |"; |
262 if (ssize_t MemUsed = llvm::TimeRecord::getCurrentTime(false).getMemUsed()) | 262 if (ssize_t MemUsed = llvm::TimeRecord::getCurrentTime(false).getMemUsed()) { |
263 Str << MemUsed; | 263 static constexpr size_t _1MB = 1024 * 1024; |
Jim Stichnoth
2016/04/01 15:22:34
So this got me thinking, why were we seeing seeing
John
2016/04/01 18:05:51
Done.
| |
264 else | 264 Str << (MemUsed / _1MB) << " MB"; |
265 } else { | |
265 Str << "(requires '-track-memory')"; | 266 Str << "(requires '-track-memory')"; |
267 } | |
266 Str << "\n"; | 268 Str << "\n"; |
267 Str << "|" << Name << "|CPool Sizes "; | 269 Str << "|" << Name << "|CPool Sizes "; |
268 { | 270 { |
269 auto Pool = Ctx->getConstPool(); | 271 auto Pool = Ctx->getConstPool(); |
270 Str << "|f32=" << Pool->Floats.size(); | 272 Str << "|f32=" << Pool->Floats.size(); |
271 Str << "|f64=" << Pool->Doubles.size(); | 273 Str << "|f64=" << Pool->Doubles.size(); |
272 Str << "|i1=" << Pool->Integers1.size(); | 274 Str << "|i1=" << Pool->Integers1.size(); |
273 Str << "|i8=" << Pool->Integers8.size(); | 275 Str << "|i8=" << Pool->Integers8.size(); |
274 Str << "|i16=" << Pool->Integers16.size(); | 276 Str << "|i16=" << Pool->Integers16.size(); |
275 Str << "|i32=" << Pool->Integers32.size(); | 277 Str << "|i32=" << Pool->Integers32.size(); |
276 Str << "|i64=" << Pool->Integers64.size(); | 278 Str << "|i64=" << Pool->Integers64.size(); |
277 Str << "|Rel=" << Pool->Relocatables.size(); | 279 Str << "|Rel=" << Pool->Relocatables.size(); |
278 Str << "|ExtRel=" << Pool->ExternRelocatables.size(); | 280 Str << "|ExtRel=" << Pool->ExternRelocatables.size(); |
279 } | 281 } |
280 Str << "\n"; | 282 Str << "\n"; |
281 if (Func != nullptr) { | 283 if (Func != nullptr) { |
282 Str << "|" << Name << "|Cfg Memory |" << Func->getTotalMemoryMB() | 284 Str << "|" << Name << "|Cfg Memory |" << Func->getTotalMemoryMB() |
285 << " MB\n"; | |
286 Str << "|" << Name << "|Liveness Memory |" << Func->getLivenessMemoryMB() | |
283 << " MB\n"; | 287 << " MB\n"; |
284 } | 288 } |
285 } | 289 } |
286 | 290 |
287 GlobalContext::GlobalContext(Ostream *OsDump, Ostream *OsEmit, Ostream *OsError, | 291 GlobalContext::GlobalContext(Ostream *OsDump, Ostream *OsEmit, Ostream *OsError, |
288 ELFStreamer *ELFStr) | 292 ELFStreamer *ELFStr) |
289 : Strings(new StringPool()), ConstPool(new ConstantPool()), ErrorStatus(), | 293 : Strings(new StringPool()), ConstPool(new ConstantPool()), ErrorStatus(), |
290 StrDump(OsDump), StrEmit(OsEmit), StrError(OsError), IntrinsicsInfo(this), | 294 StrDump(OsDump), StrEmit(OsEmit), StrError(OsError), IntrinsicsInfo(this), |
291 ObjectWriter(), | 295 ObjectWriter(), |
292 OptQ(/*Sequential=*/Flags.isSequential(), | 296 OptQ(/*Sequential=*/Flags.isSequential(), |
(...skipping 712 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1005 Ctx = Func->getContext(); | 1009 Ctx = Func->getContext(); |
1006 Active = | 1010 Active = |
1007 Func->getFocusedTiming() || Ctx->getFlags().getSubzeroTimingEnabled(); | 1011 Func->getFocusedTiming() || Ctx->getFlags().getSubzeroTimingEnabled(); |
1008 if (Active) | 1012 if (Active) |
1009 Ctx->pushTimer(ID, StackID); | 1013 Ctx->pushTimer(ID, StackID); |
1010 } | 1014 } |
1011 | 1015 |
1012 ICE_TLS_DEFINE_FIELD(GlobalContext::ThreadContext *, GlobalContext, TLS); | 1016 ICE_TLS_DEFINE_FIELD(GlobalContext::ThreadContext *, GlobalContext, TLS); |
1013 | 1017 |
1014 } // end of namespace Ice | 1018 } // end of namespace Ice |
OLD | NEW |