On Wed, Jul 25, 2018 at 11:50 AM Segher Boessenkool <seg...@kernel.crashing.org> wrote: > > On Wed, Jul 25, 2018 at 10:28:30AM +0200, Richard Biener wrote: > > On Tue, Jul 24, 2018 at 7:18 PM Segher Boessenkool > > <seg...@kernel.crashing.org> wrote: > > > > > > This patch allows combine to combine two insns into two. This helps > > > in many cases, by reducing instruction path length, and also allowing > > > further combinations to happen. PR85160 is a typical example of code > > > that it can improve. > > > > > > This patch does not allow such combinations if either of the original > > > instructions was a simple move instruction. In those cases combining > > > the two instructions increases register pressure without improving the > > > code. With this move test register pressure does no longer increase > > > noticably as far as I can tell. > > > > > > (At first I also didn't allow either of the resulting insns to be a > > > move instruction. But that is actually a very good thing to have, as > > > should have been obvious). > > > > > > Tested for many months; tested on about 30 targets. > > > > > > I'll commit this later this week if there are no objections. > > > > Sounds good - but, _any_ testcase? Please! ;) > > I only have target-specific ones.
Works for me. > Most *simple* ones will already be > optimised by current code (via 3->2 combination). But I've now got one > that trunk does not optimise, and it can be confirmed with looking at > the resulting machine code even (no need to look at the combine dump, > which is a very good thing). And it is a proper thing to test even: it > tests that some source is compiled to properly optimised machine code. > > Any other kind of testcase is worse than useless, of course. > > Testing it results in working code isn't very feasible or useful either. > > > Segher