[PATCH] D95044: IR+AArch64: add `swiftasync` function parameter attribute

Kristof Beyls via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 20 08:15:29 PST 2021


kristof.beyls added a comment.

Just a few quick, knee-jerk-style, questions. My apologies if these are too simplistic or vague.

- Do you happen to have a pointer to some more documentation about this new Swift feature?
- I wonder if any features from other languages could also map to this IR/backend implementation? E.g. I haven't looked at how C++ co-routines are implemented, but would they be able to reuse this feature (assuming they would need a somewhat similar feature in mid- and back-end).
- As this seems to be introducing new ABI - do you have an idea of what the most appropriate ABI specification is this would be best documented in? Do I guess correctly that this is not a Darwin-only feature? If this is really swift-specific (i.e. it does not seem to be a good trade-off to have this mid/back-end feature support similar language features for multiple front-ends), I guess this is Swift-specific ABI. Do I guess correctly that there isn't really a specification for Swift-specific ABI - it's purely defined by its primary implementation?
- I just had one very detailed nit-pick comment on the documentation of frame layout - see specific comment.



================
Comment at: llvm/lib/Target/AArch64/AArch64FrameLowering.cpp:49-53
 // |- - - - - - - - - - - - - - - - - -|    | callee saves are swapped,
 // |                                   |    | (frame record first)
 // | prev_fp, prev_lr                  | <--'
 // | (a.k.a. "frame record")           |
 // |-----------------------------------| <- fp(=x29)
----------------
Would it be useful to update the documentation here on the frame record for AArch64 to cover "So when one of these contexts is present it will extend the usual (on AArch64) [FP, LR] frame record by putting the context just before it: [Ctx, FP, LR]"?


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

https://reviews.llvm.org/D95044



More information about the llvm-commits mailing list