- User Since
- Jun 1 2022, 11:35 AM (10 w, 6 d)
Adjust comments to better document the extraction algorithm and the data that
it returns. Also refactor to passing around a struct rather than a tuple and
adjust a comment in the dev mode logging.
Changed up dev mode extra features test to make it less fragile by getting rid
of the exact logging diff check and adding more FileCheck checks on the
instructions and mapping matrix for the first eviction problem.
Mon, Aug 15
Changed InputFeatures and TrainingInputFeatures from being static members to
normal class members.
Sun, Aug 14
Wed, Aug 10
Reduced the scope of the change to just refactoring parts of the
MLRegallocEvictAdvisor to set the stage for future work involving
feature lists that vary at runtime.
Thu, Aug 4
This patch adds in a DEVELOPMENT_RA_EVICT_FEATURES_LIST macro that contains development features and modifies/refactors the reset of the file in order to be able run these features when the command line option enable-features-under-development is specified. I tested this in release mode and development mode when compiled in MLGO development mode (setting TENSORFLOW_C_LIB_PATH) and I did another build in release mode (LLVM_HAVE_TF_API is false, TENSORFLOW_C_LIB_PATH isn't set) and everything seemed to work correctly, but it definitely wouldn't hurt to have more people testing this change.
Removed debugging artifacts in TFUtil.cpp
Thu, Jul 28
Thanks for the review and your suggestions. Do you mind pushing this commit? I don't currently have commit access to LLVM. Thanks.
Rebased against main and adjusted unit tests to check directly
for the cc1 flag in CmdArgs which is directly consumed by the
bitcode writer while creating the .llvmcmd section. Also changed
the flags to better match what is already getting passed in.
Wed, Jul 27
Added two unit tests to ensure functionality is correct in both
the assertion case and the default case. Should be sufficient
to ensure correct functionality without utilizing regression tests.
However, if regression tests are also desired, let me know and I can
add one in.
Moved insertion of cc1 flag to prevent shifting entire array
Jul 7 2022
This patch removes all unnecessary features from the autogenerated regalloc model (simplifying it greatly) and gets rid of the nondeterminism that I was experiencing that trips the mask==1 assertion in the MLRegallocAdvisor. Not anything super critical, but slightly annoying during development as it has to be commented out and commented back in after feature extraction development is completed and doesn't do what it it is supposed to during development. Tested locally as working and all the tests in /llvm/test/CodeGen/MLRegalloc pass for me as well.
Jun 27 2022
I don't have commit access to the llvm-test-suite repository. Is it possible for someone to push this commit to the test suite repository? My details for the git commit authorship:
agrossman154 at yahoo dot com
Jun 20 2022
Made behavior consistent between TEST_SUITE_PROFILE_GENERATE and TEST_SUITE_PROFILE_USE.
Fixed modification of gcc-c-torture suite source files by just excluding the test in the relevant CMakeLists.txt file.
There seems to be an underlying issue in the compiler when compiling with instrumentation as identified in https://groups.google.com/g/llvm-dev/c/180LAuFPfKs. This patch is a workaround for this issue for people compiling the test suite with PGO instrumentation enabled and not just the TEST_SUITE_BENCHMARKING_ONLY set to ON. Let me know if there is a more elegant/preferred way of solving this within the test suite (Or if this patch is even desired given the fairly atypical use case of PGO with the entire test suite).
9(Reviewers pinged for commits in relevant areas (PGO CMake implementation/gcc-c-torture suite integration))