[llvm-branch-commits] [llvm] TableGen: Support target specialized pseudoinstructions (PR #159880)

Sergei Barannikov via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Sun Sep 21 23:00:18 PDT 2025


s-barannikov wrote:

> The call sequence pseudos are generically processed

So are calls, returns, branches etc. That's why we have isCall, isReturn, isBranch.

> Calls are quite different and there can be many per target

The fact that we can only have one adjcallstack up/down instruction is a limitation. Some targets could have multiple variants of them if allowed. This limitation doesn't make them special.

> If you use the correct APIs it wouldn't really matter. Plus we could enforce what is allowed to differ

What else can differ? Certainly not the number of operands and properties like isCall. The enforcement could be quite expensive compared to the benefits the generalization theoretically gives. And we may end up allowing only the pointer operand types to change, which could be implemented much simpler like I suggested above.


https://github.com/llvm/llvm-project/pull/159880


More information about the llvm-branch-commits mailing list