Add "Hot" AllocationType (in addition to existing cold, notcold).
Use lifetime access density as metric to identify hot allocations.
Treat hot as notcold for MemProfContextDisambiguation for now
before the disambiguation for "hot" is done.
Differential D149932
[MemProf] Add hot allocation type kanwu on May 5 2023, 12:10 AM. Authored by
Details
Add "Hot" AllocationType (in addition to existing cold, notcold). Use lifetime access density as metric to identify hot allocations.
Diff Detail
Event TimelineComment Actions Looks great, thanks! Just a few minor comments.
Comment Actions @kanwu, this change seems to break on a Windows build bot, can you take a look and revert if you need time to investigate? (I'm not sure why you were not listed in the changes for this build on buildbot) FAILED: unittests/Analysis/CMakeFiles/AnalysisTests.dir/MemoryProfileInfoTest.cpp.obj C:\bin\ccache.exe C:\PROGRA~2\MICROS~1\2019\BUILDT~1\VC\Tools\MSVC\1429~1.301\bin\HostX64\x64\cl.exe /nologo /TP -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_LIBCPP_ENABLE_ASSERTIONS -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Iunittests\Analysis -IZ:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis -Iinclude -IZ:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\include -IZ:\b\llvm-clang-x86_64-sie-win\llvm-project\third-party\unittest\googletest\include -IZ:\b\llvm-clang-x86_64-sie-win\llvm-project\third-party\unittest\googlemock\include /DWIN32 /D_WINDOWS /Zc:inline /Zc:preprocessor /Zc:__cplusplus /Oi /bigobj /permissive- /W4 -wd4141 -wd4146 -wd4244 -wd4267 -wd4291 -wd4351 -wd4456 -wd4457 -wd4458 -wd4459 -wd4503 -wd4624 -wd4722 -wd4100 -wd4127 -wd4512 -wd4505 -wd4610 -wd4510 -wd4702 -wd4245 -wd4706 -wd4310 -wd4701 -wd4703 -wd4389 -wd4611 -wd4805 -wd4204 -wd4577 -wd4091 -wd4592 -wd4319 -wd4709 -wd5105 -wd4324 -w14062 -we4238 /Gw /MD /O2 /Ob2 /EHs-c- /GR- -UNDEBUG -std:c++17 /showIncludes /Founittests\Analysis\CMakeFiles\AnalysisTests.dir\MemoryProfileInfoTest.cpp.obj /Fdunittests\Analysis\CMakeFiles\AnalysisTests.dir\ /FS -c Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(632): error C2065: 'uint': undeclared identifier Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(632): error C2146: syntax error: missing ';' before identifier 'Idx' Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(632): error C2065: 'Idx': undeclared identifier Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(637): error C2065: 'Idx': undeclared identifier Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(637): error C2660: 'testing::internal::EqHelper::Compare': function does not take 3 arguments Z:\b\llvm-clang-x86_64-sie-win\llvm-project\third-party\unittest\googletest\include\gtest/gtest.h(1562): note: see declaration of 'testing::internal::EqHelper::Compare' Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(637): error C2737: 'gtest_ar': const object must be initialized Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(642): error C2065: 'Idx': undeclared identifier Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(645): error C2065: 'Idx': undeclared identifier Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(652): error C2065: 'Idx': undeclared identifier Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(666): error C2065: 'uint': undeclared identifier Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(666): error C2146: syntax error: missing ';' before identifier 'Idx' Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(666): error C2065: 'Idx': undeclared identifier Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(673): error C2065: 'Idx': undeclared identifier Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(676): error C2065: 'Idx': undeclared identifier Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(683): error C2065: 'Idx': undeclared identifier Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(689): error C2065: 'uint': undeclared identifier Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(689): error C2146: syntax error: missing ';' before identifier 'Idx' Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(689): error C2065: 'Idx': undeclared identifier Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(693): error C2065: 'Idx': undeclared identifier Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(693): error C2660: 'testing::internal::EqHelper::Compare': function does not take 3 arguments Z:\b\llvm-clang-x86_64-sie-win\llvm-project\third-party\unittest\googletest\include\gtest/gtest.h(1562): note: see declaration of 'testing::internal::EqHelper::Compare' Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(693): error C2737: 'gtest_ar': const object must be initialized Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(697): error C2065: 'Idx': undeclared identifier Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(700): error C2065: 'Idx': undeclared identifier Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\unittests\Analysis\MemoryProfileInfoTest.cpp(707): error C2065: 'Idx': undeclared identifier Comment Actions I committed it for Kan, odd that the buildbots don't seem to be including this change specifically. Looks like some platforms don't recognize "uint". I will commit a fix in a few mins to use "unsigned" instead.
Comment Actions Should be fixed by 57d71cba0a84ee90356f460b381c1ba5aee5822b
This comment was removed by shchenz. Comment Actions Yes, it looks like that was accidentally added into the patch and got committed. I will remove that. |
Update comment