[PATCH] D69876: Allow output constraints on "asm goto"

Bill Wendling via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Jan 6 17:10:49 PST 2020


void added inline comments.


================
Comment at: clang/lib/AST/Stmt.cpp:646-648
+      // Labels are placed after "InOut" operands. Adjust accordingly.
+      if (IsLabel)
+        N += getNumPlusOperands();
----------------
jyknight wrote:
> I'm confused about this part. Why isn't the "N" specified in the assembly string already the correct value for the labels? Is the ordering we use internally and that users use externally not the same? I'm assuming your code here is correct, just I'm not understanding, so probably an improved comment would be nice.
The LLVM-specific ordering that I saw was something like:

  `<output constraints>,<input constraints>,<plus constraints>,<optional X>,<other constraints>`

The `<plus constraints>` is empty when there are no output constraints. This just makes up for this. It's probably better to reverse the `<optional X>` and `<plus constraints>` parts, but I didn't know how pervasive the order's assumption is in the code.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69876/new/

https://reviews.llvm.org/D69876





More information about the cfe-commits mailing list