[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