Adds support for these SCEVs to cover more cases.
Details
Diff Detail
Unit Tests
Event Timeline
We could also rewrite all types like this: https://github.com/llvm/llvm-project/commit/137e813953991caa93cfe439808618045a3e6311
There is a bit of compile time impact from doing that (though in part it's code size correlated): http://llvm-compile-time-tracker.com/compare.php?from=e00c73c856a325008afead10cfb3e9d0fc4a1e41&to=137e813953991caa93cfe439808618045a3e6311&stat=instructions:u
And code size seems to consistently increase: http://llvm-compile-time-tracker.com/compare.php?from=e00c73c856a325008afead10cfb3e9d0fc4a1e41&to=137e813953991caa93cfe439808618045a3e6311&stat=size-text Not sure if that means something is going wrong, or all optimizations this enables happen to be size increasing.
llvm/test/Analysis/ScalarEvolution/trip-count9.ll | ||
---|---|---|
424 | Same |
I do not know if this trip count is used for anything useful, but its fragility is concerning.
Regression