[llvm] [ARM] Stop gluing 1-bit shifts (PR #116547)
Simon Tatham via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 18 09:11:07 PST 2024
statham-arm wrote:
Can you expand the commit message to explain the benefit of this change? It says _what_ you're doing, but expects the reader to already understand _why_.
I haven't needed to get involved with "glue" in SelectionDAG before. But it looks as if the idea is that now when we generate an LSRS + RRX pair, they're tied together by a precise data flow dependency saying the second instruction uses the CPSR written by the first, whereas previously the "glue" system said something more approximate like "just don't separate this pair of instructions"? So now you could imagine a backend pass separating the two instructions, if something else could safely be put in between.
But I don't see any examples in the changed tests where that's actually happened. All the test changes look as if they've just perturbed the register allocation.
Is this change intended to improve performance? Or is there some other purpose?
https://github.com/llvm/llvm-project/pull/116547
More information about the llvm-commits
mailing list