Added a flag to make configurable the number of interferences after
which we 'bail out' and treat a set of intervals as un-evictable. Also
using it on the ML side, as it turns out to be a good control for
compile-time.
With this configurable, we can do a bit of trial and error and see if
bumping it has any effect on heuristic/policy quality.
This broke compilation for me:
../lib/CodeGen/MLRegallocEvictAdvisor.cpp: In member function ‘bool {anonymous}::MLEvictAdvisor::loadInterferenceFeatures(llvm::LiveInterval&, llvm::MCRegister, bool, const SmallVirtRegSet&, {anonymous}::FeaturesListNormalizer&, size_t) const’: ../lib/CodeGen/MLRegallocEvictAdvisor.cpp:549:50: error: ‘EvictInterferenceCutoff’ was not declared in this scope 549 | const auto &IFIntervals = Q.interferingVRegs(EvictInterferenceCutof ); | ^~~~~~~~~~~~~~~~~~~~~~ ../lib/CodeGen/MLRegallocEvictAdvisor.cpp: At global scope:I guess that's because EvictInterferenceCutoff is declared within an ifdef that isn't taken in my build configuration.