Hello. This has code to prevent it from increasing codesize, right? I'm seeing the opposite happen, at least at -Oz. Perhaps because of an interplay between block layout or jump tables or something like it?
Hello, any reason why LoopInterchange pass is not on by default?
This was actually fixed entirely for SystemZ, by just rewriting one setDesc() call to instead rebuilding the new opcode from scratch. So, this is actually not an issue any more of my concern, so I will abandon this for now. Thanks for taking a look, though!
Partially address some of @rsmith's review notes, see reply notes for issues.
Matt, thanks a lot for the review!
I don't think this will work. This just subtracts the number of unstable edges without actually removing those features? Or do i misunderstand how this actually works?
I think that was sort of an advantage of the algorithm. We do not remove unstable features, so that any new inputs triggering them won't be considered as new at all, but we don't add such inputs to the corpus to prevent its explosion.
Kevin agreed with me offline that this doesn't prevent corpus growth and does something other than intended. We will think about what it does before proceeding.
Fix CodeGen/AMDGPU test failures, by adding Counters only when skip/count is set.
I believe this will save many memory when skip/count is not set, thus fixing the problem.