[clang] [llvm] [inlineasm] Improve support for multiple inline asm constraints (e.g. "rm") (PR #197798)

Nick Desaulniers via cfe-commits cfe-commits at lists.llvm.org
Mon Jun 8 11:53:23 PDT 2026


================
@@ -0,0 +1,246 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6
+; RUN: llc -mtriple=x86_64-unknown-linux-gnu -O0 < %s | FileCheck --check-prefixes=O0 %s
+; RUN: llc -mtriple=x86_64-unknown-linux-gnu     < %s | FileCheck --check-prefixes=O2 %s
----------------
nickdesaulniers wrote:

@bwendling and I met online last Thursday June 24 to discuss this approach more.

Some call outs from this meeting, specifically these `RUN` lines.

For any patches attempting to resolve this long running issue, the test matrix is pretty large.

At the very least, I expect us to test combinations of the following:
- BOTH ISEL frameworks
- BOTH regalloc frameworks
- At least one CISC arch and one RISC arch
- The happy path (no reg pressure) and the unhappy path (proper fallback to "m" under register pressure)
- inline `asm` and inline `asm goto` (`call` vs `callbr`)

For this test case specifically, rather than `-O0` vs `<nothing>`; I'd rather see 4 explicit `RUN` lines, testing the combinations of ISEL and regalloc frameworks.  In particular, I suspect doing so you will find that the changes necessary to SelectionDAGBuilder MUST be mirrored/handled as well in GlobalISEL.  Not seeing changes to GlobalISEL when there are changes to SelectionDAGBuilder is a red flag that to me implies missing test coverage.

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


More information about the cfe-commits mailing list